python渗透测试入门之取代netcat

信息安全不简单鸭2024-04-21 18:46:03  133

近期收到了电子工业出版社赠送的一本黑客书籍《python黑帽子》,看了一下翻译,令人吃惊,竟然是资深知乎网友,安全大神林修乐(

@Gh0u1L5

,腾讯玄武实验室安全研究员)。接下来的时光里,准备做一下里面的实验,跟进大神的成长步伐。书中一共24个实验,今天复现第一个实验(取代netcat),我的测试环境是mbp电脑+kali虚拟机+conda开发环境。

netcat 一直是老师们口中的瑞士军刀,小巧灵活,却是牛逼plus,文件传输、反弹shell无所不能。

conda create -n py3hack python=3.6conda activate py3hackconda deactivate

1、测试命令控制:在服务端先启动脚本

然后在客户端连上服务端,ctrl + D就获得了一个shell

也可以直接使用nc来获得相同的结果

2、测试命令执行:先在服务端启动脚本

在客户端启动脚本,就能得到命令执行的结果

也可以直接使用nc来获得相同的结果

3、测试文件上传:在服务端先执行

接着在客户端执行,并输入文件内容(字符串123)

最后在服务端查看,我们的文件内容(字符串123)传输ok ~

针对二进制文件,我们可以这样传输,在客户端输入< 二进制文件名

再去服务端见证奇迹

参考代码

# -*- coding: utf-8 -*-# @Time : 2022/5/31 7:27 PM# @Author : ailx10# @File : netcat.pyimport argparseimport socketimport shleximport subprocessimport sysimport textwrapimport threadingdef execute(cmd): cmd = cmd.strip if not cmd: return output = subprocess.check_output(shlex.split(cmd),stderr=subprocess.STDOUT) return output.decodeclass Netcat: def __init__(self,args,buffer=None): self.args = args self.buffer = buffer self.socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM) self.socket.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) def run(self): if self.args.listen: self.listen else: self.send def send(self): self.socket.connect((self.args.target,self.args.port)) if self.buffer: self.socket.send(self.buffer) try: while True: recv_len = 1 response = '' while recv_len: data = self.socket.recv(4096) recv_len = len(data) response += data.decode if recv_len < 4096: break if response: print(response) buffer = input('>') buffer += ' ' self.socket.send(buffer.encode) except KeyboardInterrupt: print('User terminated') self.socket.close sys.exit def listen(self): self.socket.bind((self.args.target,self.args.port)) self.socket.listen(5) while True: client_socket,_ = self.socket.accept client_thread = threading.Thread(target=self.handle,args=(client_socket,)) client_thread.start def handle(self,client_socket): if self.args.execute: output = execute(self.args.execute) client_socket.send(output.encode) elif self.args.upload: file_buffer = b'' while True: data = client_socket.recv(4096) print(data.decode) if data: file_buffer += data else: break with open(self.args.upload,'wb') as f: f.write(file_buffer) message = f'Saved file {self.args.upload}' client_socket.send(message.encode) elif self.args.command: cmd_buffer = b'' while True: try: client_socket.send(b'ailx10:#>') while ' ' not in cmd_buffer.decode: cmd_buffer += client_socket.recv(64) response = execute(cmd_buffer.decode) if response: client_socket.send(response.encode) cmd_buffer = b'' except Exception as e: print(f'server killed {e}') self.socket.close sys.exitif __name__ == "__main__": parser = argparse.ArgumentParser(description="simple netcat tool", formatter_class=argparse.RawDescriptionHelpFormatter, epilog=textwrap.dedent("""Example: netcat.py -t 192.168.0.108 -p 5555 -l -c # command shell netcat.py -t 192.168.0.108 -p 5555 -l -u=mytest.txt # upload file netcat.py -t 192.168.0.108 -p 5555 -l -e="cat /etc/passwd" # execute command echo 'ABC' | ./netcat.py -t 192.168.0.108 -p 135 # echo text to server port 135 netcat.py -t 192.168.0.108 -p 5555 # connect to server """)) parser.add_argument('-c','--command',action='store_true',help='command shell') parser.add_argument('-e','--execute',help='execute specified command') parser.add_argument('-l','--listen',action='store_true',help='listen') parser.add_argument('-p','--port',type=int,default=5555,help='specified port') parser.add_argument('-t','--target',default='192.168.0.108',help='specified ip') parser.add_argument('-u','--upload',help='upload file') args = parser.parse_args if args.listen: buffer = '' else: buffer = sys.stdin.read nc = Netcat(args,buffer.encode) nc.run

转载此文是出于传递更多信息目的。若来源标注错误或侵犯了您的合法权益,请与本站联系,我们将及时更正、删除、谢谢。
https://www.414w.com/read/290261.html
0
随机主题
星二代的四组对比, 一目了然的颜值差距告诉你, 遗传基因骗不了人迎接比糖果更甜的笑 6岁新疆女孩来浙修复唇腭裂聚焦生物多样性, 中粮可口可乐走进青岛浮山探索生物魅力美国财长耶伦: 动用俄冻结资产助乌非为选举, 七国峰会或敲定方案郭虹: 演技深厚获认可假吃演员们! 求求你们学学《庆余年2》付辛博是怎么演干饭戏的吧庆余年2唯一输家: 最牛星二代跌下神坛, 演技尴尬, 全程被吊打西康高铁最长桥梁建设取得新进展, 通车后关中陕南一小时内可达汽车工业进入新时代, 日产逍客开始大降价, 还值得入手吗?乌克兰败局已定,美国急着让中国背锅,耿爽大使当面甩回四个大字纯电续航“虚标王”? 懂车帝实测长安UNI-Z纯电续航达成率1他演女人竟骗过所有人, 扮女人扮成他这样, 全世界找不到第二个国服开服后快人一步! 熊猫人之谜职业详细推荐, 赢在起跑线!建明中国总裁: 继续深耕中国市场 推进增资扩产他是公安部第三任部长, 59岁自杀, 两位公安部副部长受牵连被审查全新凯迪拉克XT5曝光,2.0T混动+贯穿大屏/尺寸加大/或于年内上市俄罗斯从三家欧洲银行扣押了价值超过7亿欧元的资产小马科斯现身军校, 连放狠话, 终于对中国籍船员出手, 国防部正告数据: 4个希腊人当中就有1个老人曝申花将成为新一期国足国脚大户大众SUV起家的旗舰车型, 途观L在众多人眼里依旧能打
最新回复(0)