# Pentest fix ## **5.1** ### Bước 1 * Xem trước các user có quyền chọn , chèn, thêm , sửa , xóa database * **Câu lệnh** ``` SELECT User , HOST , Select_priv , Insert_priv,Create_priv , Update_priv ,Delete_priv , Drop_priv FROM mysql.user where ( Select_priv = 'Y' or Insert_priv = 'Y' or Create_priv = 'Y' or Update_priv = 'Y' or Delete_priv = 'Y' or Drop_priv = 'Y' ) and User NOT IN(<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN>) ORDER BY Host, User ``` * **note** ```*<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN> ví dụ 'root'``` ### Bước 2: * Lấy ra chuối các user có quyền chọn , chèn, thêm , sửa , xóa database * **Câu lệnh** ``` select GROUP_CONCAT(t.user_infor) FROM ( SELECT CONCAT("'",User, "'@'",HOST,"'") as user_infor FROM mysql.user where ( Select_priv = 'Y' or Insert_priv = 'Y' or Create_priv = 'Y' or Update_priv = 'Y' or Delete_priv = 'Y' or Drop_priv = 'Y' ) and User NOT IN(<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN>) ORDER BY Host, User ) as t ``` * **Note** ```*<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN> ví dụ 'root'``` * **Kết quả** ``` 'root'@'%','test2'@'%','test5'@'%','toanpk'@'%','debian-sys-maint'@'localhost','rsafi'@'localhost' ``` ### Bước 3: * sau khi lấy được danh sách user cần phải update thực hiện chạy lệnh xóa quyền ``` REVOKE SELECT , INSERT , CREATE , UPDATE , DELETE, DROP ON *.* FROM < DANH SÁCH USER LẤY ĐƯỢC TỪ BƯỚC 2> ``` ## **5.2** ### Bước 1: * Xem trước các user có quyền Thao tác file ``` SELECT User , HOST , File_priv FROM mysql.user where File_priv = 'Y' and User NOT IN(<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN>) ORDER BY Host, User ``` * **note** ```*<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN> ví dụ 'root'``` ### Bước 2: * Lấy ra các user có quyền Thao tác file * **Câu lệnh** ``` select GROUP_CONCAT(t.user_infor) FROM ( SELECT CONCAT("'",User, "'@'",HOST,"'") as user_infor FROM mysql.user where File_priv = 'Y' and User NOT IN(<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN>) ORDER BY Host, User ) as t ``` * **Note** ```*<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN> ví dụ 'root'``` * **Kết quả** ``` 'toanpk'@'%','debian-sys-maint'@'localhost','rsafi'@'localhost' ``` ### Bước 3: * sau khi lấy được danh sách user cần phải update thực hiện chạy lệnh xóa quyền ``` REVOKE FILE ON *.* FROM < DANH SÁCH USER LẤY ĐƯỢC TỪ BƯỚC 2> ``` ## **5.4** tương tự 5.2 thay File_priv bằng Super_priv ### Bước 3 : ``` REVOKE SUPER ON *.* FROM < DANH SÁCH USER LẤY ĐƯỢC TỪ BƯỚC 2> ``` ## **5.5** tương tự 5.2 thay File_priv bằng Shutdown_priv ### Bước 3 : ``` REVOKE SHUTDOWN ON *.* FROM < DANH SÁCH USER LẤY ĐƯỢC TỪ BƯỚC 2> ``` ## **5.6** tương tự 5.2 thay File_priv bằng Create_user_priv ### Bước 3 : ``` REVOKE CREATE USER ON *.* FROM < DANH SÁCH USER LẤY ĐƯỢC TỪ BƯỚC 2> ``` ## **5.7** ### Bước 1: * Xem trước các user có quyền GRANT OPTION ``` SELECT User , HOST , Grant_priv FROM mysql.db where Grant_priv = 'Y' and User NOT IN('root') ORDER BY Host, User ``` * **note** ```*<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN> ví dụ 'root'``` ### Bước 2: * Lấy ra các user có quyền GRANT OPTION * **Câu lệnh** ``` select GROUP_CONCAT(t.user_infor) FROM ( SELECT CONCAT("'",User, "'@'",HOST,"'") as user_infor FROM mysql.db where Grant_priv = 'Y' and User NOT IN(<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN>) ORDER BY Host, User ) as t ``` * **note** ```*<DANH SACH USER KHÔNG ĐƯỢC XÓA QUYỀN> ví dụ 'root'``` * **Kết quả** ``` 'toanpk'@'%','debian-sys-maint'@'localhost','rsafi'@'localhost' ``` ### Bước 3: * sau khi lấy được danh sách user cần phải update thực hiện chạy lệnh xóa quyền ``` REVOKE REPLICATION SLAVE ON *.* FROM < DANH SÁCH USER LẤY ĐƯỢC TỪ BƯỚC 2> ``` ## **5.8** tương tự 5.2 thay File_priv bằng Create_user_priv ### Bước 3 : ``` REVOKE REPLICATION SLAVE ON *.* FROM < DANH SÁCH USER LẤY ĐƯỢC TỪ BƯỚC 2> ``` ## **5.9** Giống 5.1 ## 1 list querry check * sudo service mysql status * mysql --user=<user> mysql -p<pass> * Tạo user : CREATE USER 'test3'@'%' IDENTIFIED BY '<password>'; * show list user : select User, Select_priv, Create_priv, Insert_priv, Update_priv, Delete_priv, Drop_priv, File_priv, Super_priv from mysql.user; * add quyền cho user : GRANT CREATE, SELECT ON *.* TO 'newuser'@'%'; * Xóa quyền cho user : REVOKE SELECT ON *.* FROM 'test'@'%';