shellcode初探索

shellcode初探——helloShellcode 我曾在一篇博客里写过 安全就是一群点错技能树的程序员——有些甚至不是 很遗憾,我就是后者,对于c的理解仅仅存在于hello word,shellcode也是只存在与msfvenom 这次算是我第一次算是认真接触 ShellCode? 机器码? shellcode的本质上一段机器码,通常由汇编代码编译而成的最终产物,例如我想获得一个拉起bashshell的机器码需要做的是先获得一个bashshell的程序,在汇编中的他的写法是这样的 section .data bin_sh db '/bin/bash', 0x00 ; 字符串 "/bin/bash" section .text global _start _start: ; 调用 execve("/bin/bash", ["/bin/bash"], NULL) xor rax, rax ; 清除 rax mov rdi, bin_sh ; rdi 指向 "/bin/bash" push rax ; 在栈上压入 NULL (argv) mov rsi, rsp ; rsi 指向 argv 数组 push rax ; 在栈上压入 NULL (envp) mov rdx, rsp ; rdx 指向 envp 数组 mov al, 59 ; syscall 59 是 execve syscall ; 触发系统调用 这段代码通过系统调用execve执行了/bin/sh,要获得他的机器码需要先编译为可执行文件,而汇编到可执行文件有两步 ...

September 9, 2024 · 3 min · 491 words · neko

校园网突破

校园网突破 简单来说就是内网渗透,除了突破学校网络来上网,还有就是看看能不能拿下更多的设备 出网权限获取 学校的设置是教学区可以使用校园网出网,而宿舍虽然有校园网的选项但是并不能出网,根据之前的上个学期的经验学校的宿舍网络与校园网络是相通的也就是说最简单的方法就是找到一台教学区的设备作为跳板出网,这并不难,去年学校装了不少监控开着adb端口我已经报告了好几次了——你既然不修,那我就来用 随即选择一台幸运设备连接 可以看到是一个标准shell,nmap扫描结果显示开放ssh端口,这就好办了,修改passwd文件手动写入一个用户 在用passwd命令修改密码 这样就拿到了ssh权限,可以做代理了 速度尚可,但是非常不稳定 通过一个rdp弱口令进入了一台服务器,在user下发现了个好玩的 s 原以为是已经被人拿下了 但这不像 供 h 管 应 t 理 链 t 员 p : : a / d / m * i * n * . * * * 密 . 码 * : * * * * . * * * * / x x x / D e f a u l t . a s p x ...

September 7, 2024 · 4 min · 654 words · neko

蜜罐的部署与节点部署

蜜罐的部署与节点部署 蜜罐其实有挺多的选择的,这次部署的是比较受欢迎的HFish蜜罐,这次主要是用于后面研究傀儡机的反击 部署完成图片: ![](https://raw.githubusercontent.com/neko205-mx/imgs/master/屏幕截图 2024-08-12 155440.png) 部署方法 我选择的部署方式是在已有的宝塔环境下走docker部署,详细是在这里Docker下载部署 (hfish.net) 在部署好docker后使用 docker run -itd --name hfish \ -v /usr/share/hfish:/usr/share/hfish \ --network host \ --privileged=true \ threatbook/hfish-server:latest 基本上就自动完成部署,需要注意的就是各种防火墙记得放通,或者直接关闭 节点部署 Hfish的节点部署是通过拉取管理端的文件完成的,所以需要节点与管理服务器能够相互通信,节点我用了一台阿里云的轻量服务器,巨辣鸡,之前用它跑bt+博客基本是原地爆炸的状态,但是作为蜜罐节点绰绰有余 root权限运行就好,应该在几分钟内就能看到连接 后续 目前蜜罐总计已经捕获了近万个的ip,这周会在业余时间研究下hfish的api使用来导出攻击者ip与其他工具进行联动

August 12, 2024 · 1 min · 31 words · neko

[玄机]vulntarget-n linux tomcat 勒索应急响应

vulntarget-n 分析攻击事件是如何发生的,请给出攻击画像 解密勒索 恢复原来的index.jsp页面,恢复正常的web服务 找到隐藏在其中的3个flag 入侵事件,先备份命令历史 cat .bash_history >> bash_hi.bak 第一个flag flag{vulntarget_very_G00d} 但没够继续翻日志 跟踪log可以看到服务器这里是tomcat的服务端位于/opt/tomcat/root这里在备份index后又新建了一个,接着跟踪 在根目录创建了一个.vulntarget文件夹,用python生成了一对密钥对,然后拷贝了公钥到根目录用py脚本进行了加密,跟踪来到生成密钥的位置 可以看到私钥没有删除,根据log文件信息也只做了rsa,那只需要写一个脚本解密就好,然后截至到这里遇到了卡住我的第一个点 flag解密是正常的,但相对较长的index与404文件无法正常解密,后续是使用python解决的 import base64 import os import rsa # 定义目标后缀 TARGET_EXTENSIONS = ['.vulntarget'] def load_private_key(key_path): """加载RSA私钥""" with open(key_path, mode="rb") as file: priv_key = file.read() return rsa.PrivateKey.load_pkcs1(priv_key) def rsa_decrypt(file_name, priv_key): """对文件进行RSA解密""" with open(file_name, mode="rb") as file: encoded_data = file.read() try:xin xi data = base64.b64decode(encoded_data) except Exception as e: print(f"Base64 decode error for file {file_name}: {e}") return # 打印解密前的数据块信息 print(f"Decrypting file: {file_name}") print(f"Encoded data length: {len(encoded_data)}") print(f"Decoded data length: {len(data)}") # 存储解密后的数据块 res = [] # 设置每次解密的数据块大小为128字节 chunk_size = 128 # 128大小 关键flag{https://github.com/crow821/vulntarget} for i in range(0, len(data), chunk_size): chunk = data[i:i + chunk_size] print(f"Decrypting chunk {i // chunk_size}: {chunk.hex()[:60]}...") try: decrypted_chunk = rsa.decrypt(chunk, priv_key) res.append(decrypted_chunk) except rsa.pkcs1.DecryptionError as e: # 如果解密过程中出现错误,则打印错误信息并跳过当前数据块 print(f"Decryption failed for chunk {i // chunk_size}: {e}") continue # 跳过失败的块 decrypted_data = b''.join(res) os.remove(file_name) # 去掉后缀 new_file_name = file_name.replace(".vulntarget", "") with open(new_file_name, mode="wb") as file: file.write(decrypted_data) print(f"[+] Decrypt success: {new_file_name}") def decrypt_files_in_directory(directory_path, priv_key): """递归解密目录下的所有文件""" for root, _, files in os.walk(directory_path): for file in files: file_path = os.path.join(root, file) if any(file_path.endswith(ext) for ext in TARGET_EXTENSIONS): rsa_decrypt(file_path, priv_key) def main(target_path, key_path): """主函数""" priv_key = load_private_key(key_path) if os.path.isdir(target_path): decrypt_files_in_directory(target_path, priv_key) else: if any(target_path.endswith(ext) for ext in TARGET_EXTENSIONS): rsa_decrypt(target_path, priv_key) if __name__ == '__main__': target_path = './' # 替换为实际路径 key_path = './key.pem' # 替换为私钥路径 main(target_path, key_path) 使用了分块解密 ...

July 13, 2024 · 2 min · 242 words · neko

[玄机] 日志分析-mysql应急响应

考的是对mysql下渗透方式的熟悉程度 1.黑客第一次写入的shell flag{关键字符串} 2.黑客反弹shell的ip flag{ip} 3.黑客提权文件的完整路径 md5 flag{md5} 注 /xxx/xxx/xxx/xxx/xxx.xx 4.黑客获取的权限 flag{whoami后的值} 黑客反弹shell的ip mysql的渗透我能想到的方法无非是注入,和弱口令接管,先找到日志 root@xuanji:~# find / -name mysql /etc/init.d/mysql /etc/mysql /usr/bin/mysql /usr/lib/perl5/auto/DBD/mysql /usr/lib/perl5/DBD/mysql /usr/lib/mysql /usr/share/mysql /usr/share/php5/mysql /var/lib/mysql /var/lib/mysql/mysql /var/lib/php5/modules/apache2/enabled_by_maint/mysql /var/lib/php5/modules/cli/enabled_by_maint/mysql /var/lib/php5/modules/registry/mysql /var/log/mysql cat以后值得注意的内容是 sh: 1: curl: not found --2023-08-01 02:14:11-- http://192.168.100.13:771/ Connecting to 192.168.100.13:771... connected. HTTP request sent, awaiting response... 200 No headers, assuming HTTP/0.9 Length: unspecified Saving to: 'index.html' 0K 2.46 =2.0s 2023-08-01 02:14:13 (2.46 B/s) - 'index.html' saved [5] /tmp/1.sh: line 1: --2023-08-01: command not found /tmp/1.sh: line 2: Connecting: command not found /tmp/1.sh: line 3: HTTP: command not found /tmp/1.sh: line 4: Length:: command not found /tmp/1.sh: line 5: Saving: command not found /tmp/1.sh: line 7: 0K: command not found /tmp/1.sh: line 9: syntax error near unexpected token `(' /tmp/1.sh: line 9: `2023-08-01 02:16:35 (5.01 MB/s) - '1.sh' saved [43/43]' 服务器从192.168.100.13下载了一个脚本并运行了cat一下脚本 ...

July 4, 2024 · 1 min · 195 words · neko

[玄机] 应急响应- Linux入侵排查

1 2 3 4 5 . . . . . w 服 不 黑 黑 e 务 死 客 客 b 器 马 留 留 目 疑 是 下 下 录 似 通 了 了 存 存 过 木 木 在 在 哪 马 马 木 不 个 文 文 马 死 文 件 件 , 马 件 , , 请 , 生 请 请 找 请 成 找 找 到 找 的 出 出 木 到 , 黑 黑 马 不 请 客 客 的 死 提 的 服 密 马 交 服 务 码 的 文 务 器 提 密 件 器 开 交 码 名 i 启 提 p 的 交 提 监 交 端 口 提 交 查找文件目录可以通过find / -name www来找 ...

July 3, 2024 · 1 min · 149 words · neko