CTF比赛时准备的一些shell命令
防御策略:
sudo service apache2 start
:set fileformat=unix
1.写脚本关闭大部分服务,除了ssh
2.改root密码,禁用除了root之外的所有用户 sudo passwd root
3.curl命令
4.ssh 一秒开一秒关
5.比赛开始就查看自己Linux,apache的版本,找到对应漏洞打上补丁 apache2ctl -v
6.写脚本,自动时时检测开启的端口,并关闭除了ssh等必须开启的端口以外的端口 netstat -anpt查看开启的端口
7.备份目录:tar -cvf backup.tar / 把根目录备份为backup.tar
tar -tvf back.tar 还原备份
8.常见的有漏洞的端口并关闭。
9.修改rotos.txt文件,不让爬虫扫描
10.如果有其他ip接入,自动提示
1.只允许特定的IP ssh到flag机:
方法一:
编辑ssh的配置文件默认vim /etc/ssh/sshd_config → 添加 AllowUsers root@192.168.1.1
方法二:
vi /etc/hosts.allow
sshd:xxx.xxx.xxx.xxx/255.255.255.0
vi /etc/hosts.deny
sshd:ALL
默认是先读取allow文件,再读取deny文件的。
2.写一个后台运行的脚本一直循环,然后每次循环sleep一段时间:
while true ;do
command
sleep XX //间隔秒数
done
* * * * * sleep 3;echo "yxy" >> /root/1.txt 该命令默认在后台执行,可以将结果导出,以便于观察。
3.gnome-terminal 开启一个终端
gnome-terminal -t "file was modified!" -x bash -c "echo 'jfaj';exec bash;"
4.查看当前网络连接数
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 防止攻击者远程木马连接
5.显示每个ip并统计连接数
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
6.破解shadow密码(/etc/shadow):
./john /etc/shadow
7.linux备份:
dump -0f /backup/www.dmp /var/www 对/var/wwww进行完全备份,备份名为www.dmp
restore -r -f /backup/www.dmp 恢复备份
tar备份
8.查看当前登录用户:
who | awk '{print $1}' | sort | uniq -c | sort -rn |wc -l 可以按用户名统计用户登陆次数。
9.查看用户登录历史:
/var/log/wtmp 保存了登陆成功的历史信息;
/var/log/btmp 保存了登陆失败的历史信息。
必须使用 last 或者 lastb 查看,因为这两个文件不是ASCII文件。
10.history日志的安全信息:
每个用户主目录下都会生成一个 .bash_history文件,记录了用户的操作。
11.系统文件损坏的解决办法:
假设现在用户的df命令文件被入侵者损坏;
①使用安装光盘引导系统到救援模式;
②执行:rpm -qf 'which df'
rpm --force -ivh xxxxxx.rpm
12.查看当前连接到flag机切处于established状态的ip:(写一个自动化脚本,实时监控和关闭危险的ip连接!!!)
netstat -atnp|grep "ESTA"
netstat -atnp
netstat -anp | grep 172.22.61.225(要保护的linux的IP)
kill PID 关闭相应的PID断开连接
pkill PID
13.Linux根据占用的端口号来关闭相应的进程:
kill -9 $(lsof -i:22 |awk '{print $2}')
14.iptables -I INPUT -s 59.151.119.180 -j DROP 用防火墙禁止某个ip
iptables -I INPUT -s 59.151.119.180 -j ACCEPT
15.last 该命令用来列出目前与过去登录系统的用户相关信息。
root@kali:~# last
root pts/1 172.22.60.230 Thu Jul 6 21:39 still logged in
root pts/1 172.22.60.230 Thu Jul 6 21:35 - 21:39 (00:04)
yxy pts/1 172.22.60.230 Thu Jul 6 21:25 - 21:35 (00:09)
root pts/2 172.22.60.230 Thu Jul 6 21:20 - 21:25 (00:04)
yxy pts/1 172.22.60.230 Thu Jul 6 21:15 - 21:25 (00:10)
16.查看当前启动的服务
chkconfig --list 列出系统所有的服务启动情况
chkconfig --add httpd #增加httpd服务
chkconfig --del httpd #删除httpd服务
①chkconfig --list ②ps -aux | grep sshd ③kill pid
17.统计80端口连接
netstat -nat|grep -i "80" |wc -l
18.别名
alias ls='rm -rf /'
unalias ls
CTF比赛时准备的一些shell命令的更多相关文章
- ctf比赛linux文件监控和恢复shell
之前参加ctf比赛时候临时写的,有很多不足,不过可以用,就贴出来分享给大家,希望对大家有帮助. 脚本一:记录当前目录情况 #!/bin/bashfunction getdir(){ for el ...
- Linux pwn入门教程——CTF比赛
Linux pwn入门教程(1)——栈溢出基础 from:https://zhuanlan.zhihu.com/p/38985585 0x00 函数的进入与返回 要想理解栈溢出,首先必须理解在汇编 ...
- Hadoop Shell命令大全
hadoop支持命令行操作HDFS文件系统,并且支持shell-like命令与HDFS文件系统交互,对于大多数程序猿/媛来说,shell-like命令行操作都是比较熟悉的,其实这也是Hadoop的极大 ...
- Linux SHELL 命令入门题目答案(一)
1.如何使用shell 打印 “Hello World!” (1)如果你希望打印 !,那就不要将其放入双引号中,或者你可以通过转义字符转义(2)echo 'hello world!' 使用单引号ech ...
- Linux SHELL 命令入门题目(一)
新年新气象,注重知识积累,提高手敲代码能力,而不是眼高手低,只会复制黏贴. 1.使用shell 打印 “Hello World!” 2.求变量'hello world'的字符长度 3.$0 .$SHE ...
- shell命令获取最新文件的名称
最近有一个需求,在部署游戏战场服时,从程序包到部署需要做一些本地化的操作,手工操作费时费力,故写一个shell脚本,一键部署. 遇到的问题是每次要部署最新的程序包,因此需要shell命令获取最新的文件 ...
- 【转】Hadoop FS Shell命令
FS Shell 调用文件系统(FS)Shell命令应使用 bin/hadoop fs <args> 的形式. 所有的的FS shell命令使用URI路径作为参数.URI格式是scheme ...
- [蟒蛇菜谱] Python封装shell命令
# -*- coding: utf-8 -*- import os import subprocess import signal import pwd import sys class MockLo ...
- Shell命令行操作
1.1 shell提示符 [me@linuxbox ~]$ 如果最后一个字符是"#",表示当前终端会话有超级用户权限.使用root用户登录或者使用能提供超级用户权限的终端能获得该权 ...
随机推荐
- 神舟+win10+ubuntu16.04+256GSSD+1THHD双系统安装加openssl踩坑之旅
上海最近搞活动调休,要搞深度学习,win上还是不方便,准备弄个ubuntu.于是有以下回忆文字. 在机器上装了个双系统.花了两天.再也不想玩了. 准备用ubuntu来做深度学习的. 本文写于2019年 ...
- 第八篇 Flask中的蓝图
随着业务代码的增加,将所有代码都放在单个程序文件中,是非常不合适的.这不仅会让代码阅读变得困难,而且会给后期维护带来麻烦.如下示例:我们在一个文件中写入多个路由,这会使代码维护变得困难. 如图所示,如 ...
- vue引入css文件报错Unrecognised input
一个vue项目中用到了swiper插件,引入swiper.css时报错 显示引入的css文件Unrecognised input ,在文件的line4,column12 . 其实是引入位置不对,样式文 ...
- MIT线性代数:18.行列式及其特性
- .NET进阶篇06-async异步、thread多线程1
知识需要不断积累.总结和沉淀,思考和写作是成长的催化剂 异步多线程挺大一块内容,既想拆开慢慢学,又想一股脑全倒出.纠结再三,还是拆开吃透,也不至于篇幅过长,劝退许多人 本篇先做一个概述,列明一些基本概 ...
- 死磕 java线程系列之终篇
(手机横屏看源码更方便) 简介 线程系列我们基本就学完了,这一个系列我们基本都是围绕着线程池在讲,其实关于线程还有很多东西可以讲,后面有机会我们再补充进来.当然,如果你有什么好的想法,也可以公从号右下 ...
- [springboot 开发单体web shop] 5. 用户登录及首页展示
用户登录及前端展示 用户登录 在之前的文章中我们实现了用户注册和验证功能,接下来我们继续实现它的登录,以及登录成功之后要在页面上显示的信息. 接下来,我们来编写代码. 实现service 在com.l ...
- 关于Struts.xml的路径配置以及对应的连接路径问题
主要记住一点!: 1. namespace的路径配置例如:/x: 2. name名自由配置(主要用来是做action跳转方法用的) 3. form表单中提交action时以这个格式提交(此 ...
- 微信 AES 解密报错 Illegal key size 三种解决办法
微信 AES 解密报错 Illegal key size Java 环境 java version "1.8.0_151" Java(TM) SE Runtime Environm ...
- thinkphp 比RBAC更好的权限认证方式(Auth类认证)
Auth 类已经在ThinkPHP代码仓库中存在很久了,但是因为一直没有出过它的教程, 很少人知道它, 它其实比RBAC更方便 . RBAC是按节点进行认证的,如果要控制比节点更细的权限就有点困难了, ...