LinuxCheck
เครื่องมือตอบสนองฉุกเฉิน/การรวบรวมข้อมูล/การตรวจจับช่องโหว่ของ Linux รองรับการกำหนดค่าพื้นฐาน/การรับส่งข้อมูลเครือข่าย/แผนงาน/ตัวแปรสภาพแวดล้อม/ข้อมูลผู้ใช้/บริการ/ทุบตี/ไฟล์ที่เป็นอันตราย/เคอร์เนลรูทคิท/SSH/Webshell/ไฟล์การขุด/กระบวนการขุด/การจัดหา 70+ การตรวจสอบใน 13 หมวดหมู่ รวมถึงความเสี่ยงของห่วงโซ่/เซิร์ฟเวอร์
ต่ออายุ
บันทึกการอัปเดต: 20 เมษายน 2024
- ปรับเอาต์พุตเป็นรายงาน Markdown
- ละทิ้ง ag และใช้คำสั่ง grep ดั้งเดิมของ Linux เพื่อหลีกเลี่ยงการติดตั้งเพิ่มเติม
- ปรับรูปแบบโค้ดให้เหมาะสม ไม่จำเป็นต้องใช้ tee -a สำหรับทุกบรรทัดอีกต่อไป
- อัปเดตตรรกะการตรวจจับ Webshell
- อัปเดตลอจิกการตรวจจับที่ได้รับอนุญาต_keys
- การตรวจสอบความเสี่ยงของเซิร์ฟเวอร์เพิ่มการตรวจสอบเซิร์ฟเวอร์ JDWP และ Python HTTP
- เพิ่มการตรวจจับคอนเทนเนอร์ Docker
- เพิ่มการตรวจจับประตูหลัง PAM
- เพิ่มความสามารถในการอัปโหลดรายงานในพื้นที่เพื่อจัดการกับเหตุฉุกเฉินของเครื่องแบตช์
บันทึกการอัปเดต: 5 สิงหาคม 2022
- แก้ไขปัญหาบันทึกการตรวจสอบโมดูลเคอร์เนลมากเกินไป
บันทึกการอัปเดต: 7 มีนาคม 2022
- เพิ่มการตรวจจับประตูหลังการเชื่อมต่อ SSH แบบนุ่มนวล
วันที่อัปเดต: 17 ตุลาคม 2021
- เพิ่มการตรวจจับโทรจันการขุด Ntpclient/WorkMiner/TeamTNT
- เพิ่มตรรกะการตรวจจับโมดูล Rootkit
- เพิ่มการตรวจจับพิษ pip ของ Python
- เพิ่ม $HOME/.profile เพื่อดู
- เพิ่มการตรวจสอบความเสี่ยงของเซิร์ฟเวอร์ (Redis)
การทำงาน
- การตรวจสอบการกำหนดค่าพื้นฐาน
- การตรวจสอบการเปลี่ยนแปลงการกำหนดค่าระบบ
- ข้อมูลระบบ (ที่อยู่ IP/ผู้ใช้/เวลาบูต/เวอร์ชันระบบ/ชื่อโฮสต์/SN เซิร์ฟเวอร์)
- การใช้งานซีพียู
- ข้อมูลผู้ใช้เข้าสู่ระบบ
- ซีพียูท็อป 15
- หน่วยความจำสูงสุด 15
- ตรวจสอบพื้นที่ดิสก์ที่เหลืออยู่
- ติดฮาร์ดไดรฟ์
- การตรวจสอบซอฟต์แวร์ที่ใช้กันทั่วไป
- /etc/hots
- การตรวจสอบเครือข่าย/การจราจร
- ถ้ากำหนดค่า
- การรับส่งข้อมูลเครือข่าย
- พอร์ตการฟัง
- เปิดพอร์ต
- การเชื่อมต่อเครือข่าย
- สถานะการเชื่อมต่อ TCP
- ตารางเส้นทาง
- การกำหนดเส้นทางและการส่งต่อ
- เซิร์ฟเวอร์ DNS
- เออาร์พี
- การตรวจสอบโหมดสำส่อนของการ์ดเครือข่าย
- ไฟร์วอลล์ iptables
- การตรวจสอบแผนงาน
- แผนงานผู้ใช้ปัจจุบัน
- /etc/กำหนดการงานของระบบ
- เวลาสร้างไฟล์กำหนดการงาน
- การแก้ไขปัญหาแบ็คดอร์ของ crontab
- การตรวจสอบตัวแปรสภาพแวดล้อม
- สิ่งแวดล้อม
- เส้นทาง
- LD_PRELOAD
- LD_ELF_PRELOAD
- LD_AOUT_PRELOAD
- พร้อมท์_COMMAND
- LD_LIBRARY_PATH
- ld.so.โหลดล่วงหน้า
- การตรวจสอบข้อมูลผู้ใช้
- ผู้ใช้ที่สามารถเข้าสู่ระบบได้
- วันที่แก้ไขไฟล์ passwd
- ซูโดเออร์
- ข้อมูลการเข้าสู่ระบบ (w/last/lastlog)
- IP การเข้าสู่ระบบในอดีต
- บริการตรวจสอบ
- บริการเรียกใช้ SystemD
- เวลาสร้างบริการ SystemD
- ตรวจสอบทุบตี
- ประวัติศาสตร์
- การตรวจสอบคำสั่งประวัติศาสตร์
- /etc/profile
- $HOME/.โปรไฟล์
- /etc/rc.local
- ~/.bash_profile
- ~/.bashrc
- ทุบตีเชลล์เด้ง
- ตรวจสอบเอกสาร
- ...ไฟล์ที่ซ่อนอยู่
- การตรวจจับเวลาแก้ไขไฟล์ระบบ
- การตรวจสอบไฟล์ชั่วคราว (/tmp /var/tmp /dev/shm)
- นามแฝง
- ตรวจสอบการอนุญาตพิเศษ
- ไม่พบไฟล์กระบวนการ
- ระยะเวลาของการเปลี่ยนแปลงไฟล์ในช่วงเจ็ดวันที่ผ่านมา
- เวลาที่มีการเปลี่ยนแปลงไฟล์ในช่วงเจ็ดวันที่ผ่านมา
- ไฟล์ขนาดใหญ่ >200mb
- การตรวจสอบไฟล์ที่ละเอียดอ่อน (nmap/sqlmap/ew/frp/nps และเครื่องมือทั่วไปอื่นๆ สำหรับแฮกเกอร์)
- ไฟล์แฮ็กเกอร์ที่น่าสงสัย (โปรแกรมเช่น wget/curl ที่แฮกเกอร์อัปโหลด หรือโปรแกรมที่เป็นอันตรายเปลี่ยนเป็นซอฟต์แวร์ปกติ เช่น ไฟล์ nps เป็น mysql)
- การตรวจสอบรูทคิทเคอร์เนล
- โมดูลที่น่าสงสัย lsmod
- การตรวจสอบตารางสัญลักษณ์เคอร์เนล
- ตรวจสอบนักล่ารูทคิท
- ตรวจสอบโมดูล rootkit .ko
- ตรวจสอบเอสเอสเอช
- การระเบิดของ SSH
- การตรวจจับ SSHD
- การกำหนดค่าแบ็คดอร์ SSH
- SSH inetd การตรวจสอบประตูหลัง
- คีย์ SSH
- ตรวจสอบเว็บเชลล์
- ตรวจสอบเว็บเชลล์ PHP
- ตรวจสอบเว็บเชลล์ jsp
- การขุดไฟล์/การตรวจสอบกระบวนการ
- การตรวจสอบไฟล์การขุด
- การตรวจสอบกระบวนการขุด
- การตรวจจับ WorkMiner
- การตรวจจับไคลเอนต์ Ntpc
- การตรวจสอบพิษในห่วงโซ่อุปทาน
- การตรวจสอบพิษของ Python PIP
- การตรวจสอบความเสี่ยงของเซิร์ฟเวอร์
- Redis การตรวจจับรหัสผ่านที่ไม่รัดกุม
- การตรวจจับบริการ JDWP
- การตรวจจับ Python http.server
- การตรวจสอบสิทธิ์นักเทียบท่า
การใช้งาน
วิธีแรก: ติดตั้งผ่าน git clone
git clone https://github.com/al0ne/LinuxCheck.git
chmod u+x LinuxCheck.sh
./LinuxCheck.sh
วิธีที่สอง: โทรออนไลน์โดยตรง [คุณไม่สามารถใช้ความสามารถในการอัปโหลดรายงานได้หากคุณโทรออนไลน์]
bash -c "$(curl -sSL https://raw.githubusercontent.com/al0ne/LinuxCheck/master/LinuxCheck.sh)"
ไฟล์จะถูกบันทึกในรูปแบบ ipaddr_hostname_username_timestamp.log
รายงานจะถูกอัปโหลดโดยอัตโนมัติ
หากถูกส่งไปยังเครื่องแบทช์ สคริปต์จะถูกส่งไปยัง URL ที่แน่นอนโดยอัตโนมัติหลังจากดำเนินการ เปลี่ยน webhook_url ในสคริปต์เป็นที่อยู่ของคุณเอง
# 报告上报的地址
webhook_url= ' http://localhost:5000/upload '
upload_report () {
# 上传到指定接口
if [[ -n $webhook_url ]] ; then
curl -X POST -F " file=@ $filename " " $webhook_url "
fi
}
ใช้ Flask เพื่อเริ่มบริการบนเซิร์ฟเวอร์ของคุณเพื่อรับรายงาน Markdown ที่เซิร์ฟเวอร์รายงาน
from flask import Flask , request
app = Flask ( __name__ )
@ app . route ( '/upload' , methods = [ 'POST' ])
def upload_file ():
if 'file' not in request . files :
return "No file part" , 400
file = request . files [ 'file' ]
if file . filename == '' :
return "No selected file" , 400
if file :
filename = file . filename
file . save ( filename )
return "File successfully uploaded" , 200
if __name__ == '__main__' :
app . run ( debug = True , host = "0.0.0.0" , port = 9999 )
อ้างถึง
การเขียนเครื่องมือนี้อ้างอิงถึงเครื่องมือ/บทความต่อไปนี้เป็นหลัก และจะเสร็จสมบูรณ์ตามประสบการณ์ส่วนตัว
Linenum https://github.com/lis912/Evalued_tools
https://ixyzero.com/blog/archives/4.html
https://github.com/T0xst/linux
https://github.com/grayddq/GScan