《Python绝技》编程实战二
scanPort
- 实现自动化扫描并测试目标主机的开放端口以及端口应用。
- 细节类似上一章中的
getBanner
。
开源代码
portScanner
- 简单地实现扫描目标主机多个端口的效果。
main
- 在
main()
完成对目标主机的绑定。
portScan
-
若输入的目标主机为域名,则对其进行域名解析,得到目的主机
IP
地址。明确目标主机后,对指定的端口组分配线程进行处理。 -
gethostbyaddr()
是C
语言的一个方法名,意思是返回对应于给定地址的主机信息。 -
gethostbyname()
返回对应于给定主机名的包含主机名字和地址信息的hostent
结构的指针。结构的声明与gethostbyaddr()
中一致。
connScan
connScan()
为线程调用的函数,负责一个端口的检查。screenLock.acquire()
为互斥信号量的加锁步骤。screenLock.release()
为互斥信号量的释放步骤。这两个函数的目的是使得并行的线程对screenLock()
进行互斥访问,保证屏幕打印有序。
showBanner
-
用于对返回的二进制串进行处理且得到输出。
-
ret = chardet.detect(变量)
可以查看原有变量的编码类型。
nmapScanner
- 借助
Nmap
的Python
库对目标主机的端口组进行扫描,大体同portScanner
。
nmapScan
- 调用
nmap
库得到端口扫描的类,使用类中用于扫描的方法即可对目的主机的单一端口进行扫描。
sshCrack
- 实现自动化连接
ssh
并且执行命令。
有点鸡肋,因为没有密码也过不了,没有攻击性。
开源代码
pexpect
- 预测输出结果,对不同结果采取不同的应对方式。
main
- 从命令行获取参数,执行
connect()
之后得到shell
,在shell
中即可执行指定命令。
connect
- 该函数用于
ssh
连接并返回一个连接好的shell
或者报错退出。 pexpect.spawn()
派生一个程序,它返回这个程序的操作句柄,以后可以通过操作这个句柄来对这个程序进行操作。- 当
spawn()
启动了一个程序并返回程序控制句柄后,就可以用expect()
方法来等待指定的关键字了。 expect()
使用正则表达式匹配,对于ssh
登录后的自动输出可能造成错误匹配。并且对所需匹配的字符要明确,不然无法构造PROMPT
。send()
用来向程序发送指定的字符串,此处使用sendline()
可以自动在发送的字符串末尾加上回车。
exec_command
- 该函数用于对指定命令的执行,打印输出的结果。
before
变量用于存储上一次输出的最后100
个字节(buffer
大小),可能导致输出打印不全。
pxssh
pxssh
包含了pexpect
并将里面的函数封装好了,可以直接用于和SSH
交互。
开源代码
main
- 获得指定参数的值,确定目的主机的
IP
和用户以及破解用的本地密码集。 - 使用枚举密码集的每一个密码,使用线程的方式处理。并使用信号量对同时访问的线程个数进行限制。
connect
- 尝试指定密码连接目的主机。
- 若因连接过快失败(
read_nonblocking
)五次直接报错退出;若因命令提示符提取困难(synchronize with original prompt
)则等待重连。 pxssh.pxssh()
返回一个类型,使用该类型进行登录。login()
中封装好了pexpect
的方法,可以直接调用连接目的主机。
sshNet
- 使用类的方式对pxssh实现控制终端的过程进行了封装。
Client
参考
__EOF__

本文作者:ch3uhx9
本文链接:https://www.cnblogs.com/cheuhxg/p/15043098.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/cheuhxg/p/15043098.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix